1. 程式人生 > >Redis同步機制簡介

Redis同步機制簡介

Redis通過主從同步機制來確保master和salve之間的資料同步。

同步機制又分為:
1)全同步
2)部分同步

全同步是指salve啟動時進行的初始化同步。

部分同步是指Redis執行過程中的修改同步。

一、全同步

全同步過程如下:

1)在salve啟動時,會向master傳送一條SYNC指令。
2)master收到這條指令後,會啟動一個備份程序將所有資料寫到rdb檔案中去。
3)更新master的狀態(備份是否成功、備份時間等),然後將rdb檔案內容傳送給等待中的salve。

注意,master並不會立即將rdb內容傳送給salve。而是為每個等待中的salve註冊寫事件,當salve對應的socket可以傳送資料時,再講rdb內容傳送給salve。

二、部分同步

當Redis的master/salve服務啟動後,首先進行全同步。之後,所有的寫操作都在master上,而所有的讀操作都在salve上。因此寫操作需要及時同步到所有的salve上,這種同步就是部分同步。

部分同步過程如下:

1)master收到一個操作,然後判斷是否需要同步到salve。
2)如果需要同步,則將操作記錄到aof檔案中。
3)遍歷所有的salve,將操作的指令和引數寫入到savle的回覆快取中。
4)一旦slave對應的socket傳送快取中有空間寫入資料,即將資料通過socket發出去。