中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

redis實現數據同步的方法

發布時間:2020-06-25 19:51:50 來源:億速云 閱讀:657 作者:Leah 欄目:關系型數據庫

本篇文章為大家展示了redis實現數據同步的方法,代碼簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Redis的主從同步機制可以確保redis的master和slave之間的數據同步。

同步方式包括:全量復制和增量復制                            

全量拷貝

redis實現數據同步的方法

slave第一次啟動時,連接Master,發送PSYNC命令,格式為psync {runId} {offset}

{runId} 為master的運行id;{offset}為slave自己的復制偏移量。
slave第一次連接master時,slave并不知道master的runId,也不知道自己偏移量,這時候slave會傳一個問號和-1,告訴master節點是第一次同步。格式為psync ? -1

當master接收到psync ? -1時,知道slave是要全量復制,就會將自己的runId和offset告知slave,回復命令fullresync {runId} {offset}。同時,master會執行bgsave命令來生成rdb文件,期間的所有寫命令將被寫入緩沖區。

slave接受到master的回復命令后,會保存master的runId和offset,slave此時處于同步狀態。
slave處于同步狀態,如果此時收到請求,當配置參數slave-server-stale-data yes時,會響應當前請求;slave-server-stale-data no,返回錯誤。

master bgsave執行完畢,向slave發送rdb文件。rdb文件發送完畢后,開始向slave發送緩沖區中的寫命令。

slave收到rdb文件,丟棄所有舊數據,開始載入rdb文件。

rdb文件同步結束之后,slave執行從master緩沖區發送過來的所以寫命令。

此后 master 每執行一個寫命令,就向slave發送相同的寫命令。

增量拷貝

如果出現網絡閃斷或者命令丟失等異常情況時,當主從連接恢復后,由于從節點之前保存了自身已復制的偏移量和主節點的運行ID。因此會把它們當作psync參數發送給主節點,要求進行部分復制操作,格式為psync {runId} {offset}。

主節點接到psync命令后首先核對參數runId是否與自身一致,如果一致,說明之前復制的是當前主節點;之后根據參數offset在自身復制積壓緩沖區查找,如果偏移量之后的數據存在緩沖區中,則對從節點發送+continue響應,表示可以進行部分復制;否則進行全量復制。

主節點根據偏移量把復制積壓緩沖區里的數據發送給從節點,保證主從復制進入正常狀態。

上述內容就是redis實現數據同步的方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

名山县| 鄄城县| 兴国县| 抚松县| 遵化市| 赤城县| 双桥区| 双鸭山市| 股票| 安阳市| 库伦旗| 和平县| 镇宁| 洛阳市| 江津市| 江城| 普洱| 东阳市| 民权县| 平利县| 沙湾县| 长武县| 图木舒克市| 伊宁县| 洛隆县| 贵定县| 湘阴县| 星子县| 呼玛县| 民乐县| 思南县| 平原县| 辽源市| 台州市| 班戈县| 易门县| 桐庐县| 津南区| 翁源县| 泉州市| 天等县|