1. 程式人生 > >Redis--叢集

Redis--叢集

主伺服器:master

從伺服器:slave 

命令:SLAVEOF  ip port    (在slave中執行該命令,則將ip對應的伺服器設定為主伺服器。)

主從同步是實現步驟:(用於新的同步)

  1、從伺服器向主伺服器傳送SYNC命令。

  2、主伺服器收到命令後,執行BGSAVE命令,生產RDB檔案,並使用一個緩衝區記錄從現在開始主伺服器執行的所有寫命令。

  3、當RDB檔案生成完畢,主伺服器將檔案傳送給從伺服器,從伺服器解析RDB檔案,完成主從的同步狀態。

  4、主伺服器將緩衝區記錄的寫命令,傳送給從伺服器,從伺服器執行這些命令。最終完成伺服器的主從同步(命令傳播)。

 

部分同步的實現原理:(用於斷線重鏈同步)

  1、主從伺服器的複製偏移量(偏移量相當於執行的步驟id,每次執行一個命令,就步進1)。

  2、主伺服器的寫命令緩衝區(長度固定的佇列,預設1MB,先進先出)。

  3、伺服器的執行ID(每個Redis都有對應的執行ID,執行ID在伺服器執行的時候,自動生成。在首次同步時,從伺服器會儲存主伺服器的ID)。

實現步驟:

  1、斷線重連後,從伺服器向主伺服器傳送偏移量。主伺服器根據從伺服器的偏移量,在快取區中尋找對於的值,如果找到則執行部分同步,如果沒找到則執行全量同步。

  2、根據偏移量從緩衝區找到對應的命令列表,然後傳送給從伺服器(命令傳播)。

  3、只有斷線重連後,從伺服器發生的主伺服器ID與當前的主伺服器ID一致時,才可以進行部分同步。否則進行全量同步。