Redis叢集的三種方式詳解(附優缺點及原理區別)

mikechen的網際網路架構發表於2022-12-22

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

Redis提供了三種叢集方式,下面我重點詳解Redis三種叢集方式的原理及優缺點等區別@ mikechen

目錄

Redis主從複製模式

1.Redis主從複製定義

主從模式是三種模式中最簡單的,主從模式指的是使用一個Redis例項作為主機,其餘的例項作為備份機,主機和從機的資料完全一致。

如下圖所示:

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

主機支援資料的寫入和讀取等各項操作,而從機則只支援與主機資料的同步和讀取,也就是說客戶端可以將資料寫入到主機,由主機自動將資料的寫入操作同步到從機。

 

2.Redis主從複製工作原理

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

  • 當slave啟動後主動向master傳送SYNC命令;
  • master接收到SYNC命令後在後臺儲存快照和快取儲存快照這段時間的命令,然後將儲存的快照檔案和快取的命令傳送給slave;
  • slave接收到快照檔案和命令後載入快照檔案和快取的執行命令;
  • 複製初始化後,master每次接收到的寫命令都會同步傳送給slave,保證主從資料一致性。

 

3.Redis主從複製優缺點

Redis主從複製優點:做到讀寫分離,提高伺服器效能;

Redis主從複製缺點:在主從模式中,一旦Master節點由於故障不能提供服務,需要人工將Slave節點晉升為Master節點。

 

Redis哨兵模式

1.為什麼需要哨兵模式?

剛剛上面講到了主從模式當主伺服器當機後,需要手動把一臺從伺服器切換為主伺服器,需要人工干預費事費力,為了解決這個問題出現了哨兵模式。

如下圖所示:

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

哨兵模式由一個或多個Sentinel例項組成的Sentinel系統,它可以監視所有的Master節點和Slave節點,並在被監視的Master節點進入下線狀態時,自動將下線Master伺服器。

2.哨兵模式工作原理

當主節點出現故障時,由Redis Sentinel自動完成故障發現和轉移,並通知應用方,實現高可用性。

如下圖所示:

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

  1. 哨兵機制建立了多個哨兵節點(程式),共同監控資料節點的執行狀況。
  2. 同時哨兵節點之間也互相通訊,交換對主從節點的監控狀況。
  3. 每隔1秒每個哨兵會向整個叢集:Master主伺服器+Slave從伺服器+其他Sentinel(哨兵)程式,傳送一次ping命令做一次心跳檢測。

 

3.哨兵模式的優缺點

哨兵模式優點:最大的優點就是主從可以自動切換,系統更健壯,可用性更高;

哨兵模式缺點:最大的缺點就是還要多維護一套哨兵模式,實現起來也變的更加複雜增加維護成本;

 

Redis叢集模式

1.為什麼需要Redis叢集模式

哨兵模式基於主從模式,實現讀寫分離,它還可以自動切換,系統可用性更高。但是它每個節點儲存的資料是一樣的,浪費記憶體,因此在Redis3.0後Cluster叢集應運而生。

Redis Cluster是一種伺服器Sharding技術(分片和路由都是在服務端實現),採用多主多從,每一個分割槽都是由一個Redis主機和多個從機組成,片區和片區之間是相互平行的。

 

2.Redis叢集模式原理

在Redis的每一個節點上,都有這麼兩個東西,一個是插槽(slot),它的的取值範圍是:0-16383,還有一個就是cluster。

如下圖所示:

Redis叢集的三種方式詳解(附優缺點及原理區別)-mikechen的網際網路架構

當我們的存取的時候Redis會根據crc16的演算法得出一個結果,然後把結果對 16384 求餘數,這樣每個 key 都會對應一個編號在 0-16383 之間的雜湊槽。

透過這個值去找到對應的插槽所對應的節點,然後直接自動跳轉到這個對應的節點上進行存取操作。

為了保證高可用,RedisCluster叢集引入了主從模式,一個主節點對應一個或者多個從節點,當主節點當機的時候,就會啟用從節點。

Redis叢集模式應用

主要是針對海量資料+高併發+高可用的海量資料場景,Redis叢集模式的效能和高可用性均優於哨兵模式。

作者簡介

陳睿| ,10年+大廠架構經驗,mikechen的網際網路架構作者,專注於網際網路架構技術。

閱讀mikechen的網際網路架構更多技術文章合集

| | | | | |


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70011997/viewspace-2929035/,如需轉載,請註明出處,否則將追究法律責任。

相關文章