最近整理Redis,對sentinel有了更深入的理解,特地總結如下1.主從Redis主從redis實際上是一種主備模式,即主redis宕機後,可以切換從redis繼續提供服務。 缺點: 1.人為關註Master是否宕機 2.無法完成自動切換主從 3.從節點的功能未被充分利用主從...
最近整理Redis,對sentinel有了更深入的理解,特地總結如下
1.主從Redis
主從redis實際上是一種主備模式,即主redis宕機後,可以切換從redis繼續提供服務。
缺點:
1.人為關註Master是否宕機
2.無法完成自動切換主從
3.從節點的功能未被充分利用
主從模式:
2.sentinel
為瞭解決上述確定,Redis官方提供了sentinel,保證redis的高可用性
圖1展示的是sentinel與redis的關係,即sentinel系統對每個redis實例(主、從)均創建兩個鏈接:命令連接、訂閱連接
命令連接:發送INFO命令,與redis保持通信
訂閱連接:通過訂閱連接,自動發現其他sentinel實例
圖2展示一個最小規模的sentinel,即至少由三個sentinel實例組成,當被監視的redis被判斷為主管下線時,需要從sentinel中選舉零頭sentinel來進行主從切換
優點:
1.sentienl可以監控主從節點的健康狀況,降低了人為監控成本
2.sentinel可以完成主從切換
缺點:
1.從節點依然未被充分利用
2.無法做到橫向擴展,提供伺服器的只有一個master
sentinel模式:
圖1
圖2
3.分片
分片思想主要是利用一致性哈希演算法,完成redis的橫向擴展
1.通過zookeeper存儲sentinel的配置信息
2.在客戶端實現一致性哈希演算法,通過路由演算法決定redis命令由那個redis實例進行執行
3.通過增加shard,來分擔單個shard的壓力
缺點:
1.擴容時涉及到數據遷移,如果redis中只是緩存數據則方便處理,但如果有業務數據強依賴redis,則遷移時只能停機處理
2.無法解決冷熱數據問題
分片模式:
下節重點:
JedisClient客戶單的實現原理