聊聊Redis集群有哪些種類?
主從模式
主從架構圖
主從模式就是一個redis實例作為主節點,其他redis實例作為從節點,從節點會將主節點的數據同步過來。利用這個模式可以做讀寫分離,主節點可讀可寫,從節點只讀,降低單節點情況的壓力。
優點
- 主從同步可以實現備份數據的作用,降低數據丟失的風險
- 讀寫分離,提高查詢效率
- 某個節點掛掉時,其他節點依然可以對外提供服務
缺點
- 每個節點都是全量數據,內存利用率低,浪費資源
- 主節點掛掉時,有可能導致主從數據不一致
- 主節點掛掉后,雖然從節點可繼續查詢,但是主節點不能提供寫入服務
- 主節點掛掉后需要人工介入
- 寫入壓力在一個節點
哨兵模式
哨兵模式架構圖
哨兵模式是在主從模式的基礎上,增加了由一個或多個哨兵組成的哨兵集群來監視主從模式的運行狀態,解決主節點掛掉時無法繼續對外提供寫入服務的問題。一般會用奇數個哨兵節點,因為每個哨兵都會監視集群中節點的狀態,如果主節點掛掉了,哨兵會進行投票,將某個從節點提升為主節點接續對外提供服務,從而達到高可用。客戶端連接哨兵,哨兵對外提供redis服務地址的發現。
優點
- 實現了高可用,部分節點掛掉依然能對外提供全部服務
- 出現問題,自動切換,無需人工介入
缺點
- 依然存在內存利用率不高,每個節點都是全量數據的問題
- 部署相對復雜,節點較多,不確定性增加
- 寫入壓力依然集中在一個節點
分片集群
分片集群架構圖
有多個主從模式組成集群,當主節點掛掉是,從節點會提升為主節點,且數據是分片保存在不同的主從集群里,分片的規則是整個數據庫將會被分為16384個哈希槽,數據庫中的每個鍵都屬于這16384個槽中的其中一個,集群中的每個節點可以處0個或者最多16384個槽。
優點
- 寫入操作會被分配到不同的節點,提高了寫入效率
- 數據是分片保存到了不同的主從節點,內存利用率較高,擴展性好
- 高可用,除非其中一個主從集群的節點都掛掉,否則任何一個節點掛掉都能繼續對外提供服務
缺點
暫時沒想到