天天看點

redis主從複制之新增節點實作資料同步原理

在Slave啟動并連接配接到Master後,将主動發送SYNC指令。此後Master将啟動背景存盤程序,将資料庫快照儲存到檔案中,同時收集新的寫指令(增、删、改)并緩存起來,在背景程序執行寫檔案。完畢後,Master将傳送整個資料庫檔案到Slave,以完成一次完全同步。而Slave伺服器在接收到資料庫檔案資料之後将其存盤并加載到記憶體恢複資料庫快照到slave上。此後,Master繼續将所有已經收集到的修改指令,和新的修改指令依次傳送給Slaves,Slave将在本次執行這些資料修改指令,進而達到最終的資料同步。從master到slave的同步資料的指令和從 client發送的指令使用相同的協定格式。

如果Master和Slave之間的連結出現斷連現象,Slave可以自動重連Master,但是在連接配接成功之後,一次完全同步将被自動執行。

如果master同時收到多個 slave發來的同步連接配接指令,隻會使用啟動一個程序來寫資料庫鏡像,然後發送給所有slave。

繼續閱讀