Redis高可用演進(一)


原文鏈接: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客戶單的實現原理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM