如何理解Redis主從復(fù)制的全量和增量同步,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
為渦陽等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及渦陽網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為做網(wǎng)站、網(wǎng)站設(shè)計、渦陽網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!全量同步:
1.slave服務(wù)器連接到master服務(wù)器,發(fā)送SYNC命令
slave服務(wù)器通過 syncWithMaster() 函數(shù)來連接 Master 服務(wù)器(如果Master服務(wù)器需要密碼登錄的話,先登錄),并且發(fā)送SYNC命令請求同步,接著打開 rdb 文件(用于存儲由Master發(fā)送過來的數(shù)據(jù)),創(chuàng)建讀rdb 的 IO 事件(readSyncBulkPayload)
2.master服務(wù)器備份數(shù)據(jù)庫到 .rdb 文件
當(dāng)slave服務(wù)器發(fā)送SYNC命令到master服務(wù)器時,master 服務(wù)器變回調(diào)用 syncCommand() 函數(shù)來進行同步,同步的第一步便是把數(shù)據(jù)庫的數(shù)據(jù)存儲為 rdb 文件,存儲完畢后調(diào)用updateSalvesWaitingBgsave()函數(shù)來發(fā)送 rdb 文件給所有的slave 服務(wù)器,updateSlavesWaitingBgsave() 要做的事情是, 打開 rdb 文件, 創(chuàng)建發(fā)送 rdb 文件 IO 事件(sendBulkToSlave). 而sendBulkToSlave()主要的工作就是把rdb文件發(fā)送給 Slave 服務(wù)器。而當(dāng) Slave 服務(wù)器接收 rdb 文件完畢之后(readSyncBulkPayload()函數(shù)處理), 會清空原來數(shù)據(jù)庫的數(shù)據(jù),然后把 rdb 文件的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中
3.全量同步完成
完成上面的步驟,全量同步基本完成。
增量同步:
增量同步就是當(dāng) master 服務(wù)器有數(shù)據(jù)更新的時候,會立刻同步到所有的 slave 服務(wù)器
1.當(dāng)我們在 master 服務(wù)器增減數(shù)據(jù)的時候,就會觸發(fā) replicationFeedSalves()函數(shù),接下來在 Master 服務(wù)器上調(diào)用的每一個命令都會使用replicationFeedSlaves() 函數(shù)來同步到Slave服務(wù)器。當(dāng)然,在執(zhí)行此函數(shù)之前master 服務(wù)器會判斷用戶執(zhí)行的命令是否有數(shù)據(jù)更新,如果有數(shù)據(jù)更新并且slave 服務(wù)器不為空,才會執(zhí)行此函數(shù),而此函數(shù)主要的工作就是把用戶執(zhí)行的命令發(fā)送到所有的 slave服務(wù)器,讓 slave 服務(wù)器執(zhí)行,這樣就可以實施同步功能了。
關(guān)于如何理解Redis主從復(fù)制的全量和增量同步問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道了解更多相關(guān)知識。
當(dāng)前文章:如何理解Redis主從復(fù)制的全量和增量同步-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://aaarwkj.com/article46/pjohg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、靜態(tài)網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、建站公司、動態(tài)網(wǎng)站、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容