Redis高可用演進

cuirulove 8年前發布 | 10K 次閱讀 Redis NoSQL數據庫

來自: http://www.cnblogs.com/chenty/p/5152878.html

最近整理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客戶單的實現原理

</div>

 本文由用戶 cuirulove 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!