1. 程式人生 > 實用技巧 >redis主從同步

redis主從同步

目錄

主從庫之間採用讀寫分離。
讀操作:主庫、從庫都可以接收;
寫操作:首先到主庫執行,然後,主庫將寫操作同步給從庫。

同步機制

第一次同步

通過 replicaof(Redis 5.0 之前使用 slaveof)命令形成主庫和從庫的關係。

1、主從庫間建立連線、協商同步,為全量複製做準備。
從庫和主庫建立起連線,傳送 psync 命令,表示要進行資料同步,主庫確認回覆,FULLRESYNC響應表示第一次複製採用的全量複製。
psync 命令包含了主庫的 runID 和複製進度 offset 兩個引數。

2、主庫將所有資料同步給從庫。從庫收到資料後,在本地完成資料載入。
主庫執行 bgsave 命令,生成 RDB 檔案,接著將檔案發給從庫。
從庫接收到 RDB 檔案後,會先清空當前資料庫(避免之前資料的影響),然後載入 RDB 檔案。

3、主庫會把第二階段執行過程中新收到的寫命令(replication buffer中的修改操作),再發送給從庫。
主庫會在記憶體中使用 replication buffer,記錄 RDB 檔案生成後收到的所有寫操作。