redis相關問題
阿新 • • 發佈:2019-01-06
一致性 異步操作 執行 其他 復制。 目前 密碼 數據量 物理內存
什麽是Redis?簡述它的優缺點?
什麽是Redis?簡述它的優缺點?
- Redis本質上是一個Key-Value類型的內存數據庫,很像memcached,整個數據庫統統加載在內存當中進行操作,
定期通過異步操作把數據庫數據flush到硬盤上進行保存。
- 因為是純內存操作,Redis的性能非常出色,每秒可以處理超過 10萬次讀寫操作,
是已知性能最快的Key-Value DB。
- Redis的出色之處不僅僅是性能,Redis最大的魅力是支持保存多種數據結構,此外單個value的最大限制是1GB,
不像 memcached只能保存1MB的數據,因此Redis可以用來實現很多有用的功能。
- 比方說用他的List來做FIFO雙向鏈表,實現一個輕量級的高性 能消息隊列服務,
用他的Set可以做高性能的tag系統等等。
- 另外Redis也可以對存入的Key-Value設置expire時間,因此也可以被當作一 個功能加強版的memcached來用。
- Redis的主要缺點是數據庫容量受到物理內存的限制,不能用作海量數據的高性能讀寫,因此Redis適合的
場景主要局限在較小數據量的高性能操作和運算上。
RDB與AOF的區別
RDB 保存的是數據本身,AOF保存的是命令。
Redis集群會有寫操作丟失嗎?為什麽?
Redis並不能保證數據的強一致性,這意味這在實際中集群在特定的條件下可能會丟失寫操作。
Redis集群之間是如何復制的?
異步復制。
Redis集群如何選擇數據庫?
Redis集群目前無法做數據庫選擇,默認在0數據庫。
怎麽測試Redis的連通性?
ping,返回pong。
為什麽Redis需要把所有數據放到內存中?
Redis為了達到最快的讀寫速度將數據都讀到內存中,並通過異步的方式將數據寫入磁盤。
所以redis具有快速和數據持久化的特征。如果不將數據放在內存中,磁盤I/O速度為嚴重影響redis的性能。
在內存越來越便宜的今天,redis將會越來越受歡迎。 如果設置了最大使用的內存,則數據已有記錄
數達到內存限值後不能繼續插入新值。
怎麽理解Redis事務?
- 事務是一個單獨的隔離操作:事務中的所有命令都會序列化、按順序地執行。事務在執行的過程中,
不會被其他客戶端發送來的命令請求所打斷。
- 事務是一個原子操作:事務中的命令要麽全部被執行,要麽全部都不執行。
Redis事務相關的命令有哪幾個?
MULTI、EXEC、DISCARD、WATCH
Redis如何做內存優化?
- 盡可能使用散列表(hashes),散列表(是說散列表裏面存儲的數少)使用的內存非常小,
所以你應該盡可能的將你的數據模型抽象到一個散列表裏面。
- 比如你的web系統中有一個用戶對象,不要為這個用戶的名稱,姓氏,郵箱,密碼設置單獨的key,
而是應該把這個用戶的所有信息存儲到一張散列表裏面。
Redis如何做內存優化?
- 盡可能使用散列表(hashes),散列表(是說散列表裏面存儲的數少)使用的內存非常小,
所以你應該盡可能的將你的數據模型抽象到一個散列表裏面。
- 比如你的web系統中有一個用戶對象,不要為這個用戶的名稱,姓氏,郵箱,密碼設置單獨的key,
而是應該把這個用戶的所有信息存儲到一張散列表裏面。
redis相關問題