溫馨提示×

溫馨提示×

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

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

redis集群數(shù)據如何同步

發(fā)布時間:2020-09-23 13:25:09 來源:億速云 閱讀:320 作者:小新 欄目:關系型數(shù)據庫

這篇文章主要介紹了redis集群數(shù)據如何同步,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

redis沒有像mysql那樣復制位置的概念,所以Slave和Master斷開連接再重新連接時,會全量取Master的快照,Slave的所有數(shù)據都會清除,重新建立整個內存表,這樣導致Salve恢復數(shù)據特別慢,同時也給Master帶來的壓力。

Redis的主從復制策略是通過其持久化的rdb文件來實現(xiàn)的,其過程是先dump出rdb文件,將rdb文件全量傳輸給slave,然后再將dump后的操作實時同步到slave中。讓從服務器(slave server)成為主服務器(master server)的精確復制品。官方文檔ReplicationHowto中提到以下特點:

一個master支持多個slave,slave可以接受其他slave的連接,作為其他slave的master,從而形成一個master-slave的多級結構復制功能不會阻塞主服務器: 即使有一個或多個從服務器正在進行初次同步, 主服務器也可以繼續(xù)處理命令請求。復制功能不會阻塞從服務器: 只要在 redis.conf 文件中進行了相應的設置, 即使從服務器正在進行初次同步, 服務器也可以使用舊版本的數(shù)據集來處理命令查詢。不過, 在從服務器刪除舊版本數(shù)據集并載入新版本數(shù)據集的那段時間內, 連接請求會被阻塞。復制被利用來提供可擴展性,比如可以將slave端用作數(shù)據冗余,也可以將耗時的命令(比如sort)發(fā)往某些slave從而避免master的阻塞,另外也可以用slave做持久化,由從服務器去執(zhí)行持久化操作,這只需要將master的配置文件中的save指令注釋掉。

Redis 使用異步復制。

Redis的主從復制分為兩個階段:

1)同步操作:將從服務器的數(shù)據庫狀態(tài)更新至主服務器當前所處的數(shù)據庫狀態(tài)。

2)命令傳播:在主服務器的數(shù)據庫狀態(tài)被修改,導致主從服務器的數(shù)據庫狀態(tài)出現(xiàn)不一致時,讓主從服務器重新回到一致狀態(tài)。

同步

當客戶端向從服務器發(fā)送 SLAVEOF 命令, 要求從服務器復制主服務器時, 從服務器首先需要執(zhí)行同步操作, 也即是, 將從服務器的數(shù)據庫狀態(tài)更新至主服務器當前所處的數(shù)據庫狀態(tài)。

從服務器對主服務器的同步操作需要通過向主服務器發(fā)送 SYNC 命令來完成, 以下是 SYNC 命令的執(zhí)行步驟:

從服務器向主服務器發(fā)送 SYNC 命令。收到 SYNC 命令的主服務器執(zhí)行 BGSAVE 命令, 在后臺生成一個 RDB 文件, 并使用一個緩沖區(qū)記錄從現(xiàn)在開始執(zhí)行的所有寫命令。當主服務器的 BGSAVE 命令執(zhí)行完畢時, 主服務器會將 BGSAVE 命令生成的 RDB 文件發(fā)送給從服務器, 從服務器接收并載入這個 RDB 文件, 將自己的數(shù)據庫狀態(tài)更新至主服務器執(zhí)行 BGSAVE 命令時的數(shù)據庫狀態(tài)。主服務器將記錄在緩沖區(qū)里面的所有寫命令發(fā)送給從服務器, 從服務器執(zhí)行這些寫命令, 將自己的數(shù)據庫狀態(tài)更新至主服務器數(shù)據庫當前所處的狀態(tài)。

感謝你能夠認真閱讀完這篇文章,希望小編分享redis集群數(shù)據如何同步內容對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業(yè)資訊頻道,遇到問題就找億速云,詳細的解決方法等著你來學習!

向AI問一下細節(jié)

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

AI