Redis主從複製流程概述

chenfeng發表於2018-10-29

Redis包含master和slave兩種節點:master節點對外提供讀寫服務,slave節點作為master的資料備份,從主節點全量同步資料,主從複製架構下,預設Slave是隻讀的,如果寫入則會報錯,但可以透過設定slave-read-only引數為no改為可寫。

主從複製是由slave主動觸發,流程如下:

1.首先slave向master發起sync命令,發起後,master被動的將新進的slave節點加入到自己的主備複製叢集。

2.master收到sync後,開啟bgsave操作。

3.bgsave完成後,master將快照資訊傳送給slave.

4.傳送期間,master收到的來自使用者客戶單的新的寫命令,除了正常的響應之外,都再存入一份到backlog佇列中。

5.快照資訊傳送完成後,master繼續傳送backlog佇列資訊。

6.backlog傳送完成後,後續的寫操作同時發給slave來保持實時的非同步複製。


slave端處理邏輯如下:

slave傳送完sync後,繼續對外提供服務。

開始接收master的快照資訊,同時,將slave現有資料清空,並將master快照寫入自身記憶體。

接收backlog內容並執行,期間對外提供讀請求。

繼續接收後續來自master的命令副本並繼續回放,以保持資料和master一致。


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

相關文章