Redis的主從複製機制是指可以讓從伺服器(slave)能精確複製主伺服器(master)的數據,如下圖所示: (建議學習:Redis影片教學)
#上面的圖片表示的是一台master伺服器與slave伺服器的狀況,其實一台master伺服器也可以對應多台slave伺服器,如下圖:
另外,slave伺服器也可以有自己的slave伺服器,這樣的伺服器稱為sub-slave,而這些sub-slave透過主從複製最終資料也能與master保持一致,如下圖所示:
主從複製的方式與運作原理
Redis的主從複製是異步複製,非同步複製,非同步分為兩個方面,一個是master伺服器在將資料同步到slave時是異步的,因此master伺服器在這裡仍然可以接收其他請求,一個是slave在接收同步資料也是非同步的。
複製方式
Redis主從複製分為以下三種方式:
一、當master伺服器與slave伺服器正常連線時,master伺服器會傳送資料指令流給slave伺服器,將自身資料的改變複製到slave伺服器。
二、因為各種原因master伺服器與slave伺服器斷開後,slave伺服器在重新連接master伺服器時會嘗試重新取得斷開後未同步的資料即部分同步,或者稱為部分複製。
三、如果無法部分同步(例如初次同步),則會請求進行全量同步,這時master伺服器會將自己的rdb檔案傳送給slave伺服器進行資料同步,並記錄同步期間的其他寫入,再傳送給slave伺服器,以達到完全同步的目的,這種方式稱為全量複製。
以上是redis主從複製什麼時候複製的詳細內容。更多資訊請關注PHP中文網其他相關文章!