Redis Sentinel(哨兵)和Redis Cluster(集群)是Redis提供的兩種不同的高可用和擴展性解決方案,它們的設計目標和適用場景有顯著區別:
1. 核心功能與目標
-
Redis Sentinel
- 主要解決主從架構的高可用問題,實現自動故障轉移
- 監控主從節點狀態,當主節點故障時自動將從節點提升為主節點
- 提供主節點地址的自動發現能力(客戶端通過哨兵獲取當前主節點地址)
- 不解決數據分片問題,所有節點存儲相同數據
-
Redis Cluster
- 主要解決數據分片和水平擴展問題,同時提供高可用能力
- 將數據自動分片到多個節點(最多16384個哈希槽)
- 每個分片默認有1主N從的高可用結構
- 支持自動故障轉移和節點擴容/縮容
2. 架構差異
-
Sentinel架構
- 由一組哨兵進程 + 一個主節點 + 多個從節點組成
- 所有數據在主從節點間完全復制
- 哨兵節點不存儲數據,僅負責監控和決策
-
Cluster架構
- 由多個主節點(每個負責一部分哈希槽)和從節點組成
- 每個主節點負責特定范圍的哈希槽(如節點1負責0-5460槽)
- 從節點僅作為對應主節點的備份
- 無專用監控節點,