這篇文章將為大家詳細(xì)講解有關(guān)實(shí)現(xiàn)redis增量同步的的方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)主營(yíng)平壩網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,成都app開(kāi)發(fā),平壩h5成都小程序開(kāi)發(fā)搭建,平壩網(wǎng)站營(yíng)銷推廣歡迎平壩等地區(qū)企業(yè)咨詢
1、增量同步的概念
增量同步就是當(dāng) master 服務(wù)器有數(shù)據(jù)更新的時(shí)候,會(huì)立刻同步到所有的 slave 服務(wù)器
當(dāng)我們?cè)?master 服務(wù)器增減數(shù)據(jù)的時(shí)候,就會(huì)觸發(fā) replicationFeedSalves()函數(shù),接下來(lái)在 Master 服務(wù)器上調(diào)用的每一個(gè)命令都會(huì)使用replicationFeedSlaves() 函數(shù)來(lái)同步到Slave服務(wù)器。當(dāng)然,在執(zhí)行此函數(shù)之前master 服務(wù)器會(huì)判斷用戶執(zhí)行的命令是否有數(shù)據(jù)更新,如果有數(shù)據(jù)更新并且slave 服務(wù)器不為空,才會(huì)執(zhí)行此函數(shù),而此函數(shù)主要的工作就是把用戶執(zhí)行的命令發(fā)送到所有的 slave服務(wù)器,讓 slave 服務(wù)器執(zhí)行,這樣就可以實(shí)施同步功能了。
2、增量同步功能組成部分
1)主服務(wù)器的復(fù)制偏移量和從服務(wù)器的復(fù)制偏移量;
主服務(wù)器每次向從服務(wù)器傳播N個(gè)字節(jié)的數(shù)據(jù)時(shí),就將自己的復(fù)制偏移量的值加N;
從服務(wù)器每次收到主服務(wù)器傳播來(lái)的N個(gè)字節(jié)的數(shù)據(jù)時(shí),就將自己的復(fù)制偏移量的值加上N。
2)主服務(wù)器的復(fù)制積壓緩沖區(qū);
由主服務(wù)器維護(hù)的一個(gè)固定長(zhǎng)度隊(duì)列,默認(rèn)為1M,當(dāng)主服務(wù)器進(jìn)行命令傳播時(shí),它不僅會(huì)將寫(xiě)命令發(fā)送給所有從服務(wù)器,還會(huì)將寫(xiě)命令入隊(duì)到復(fù)制積壓緩沖區(qū)里面。
3)服務(wù)器的運(yùn)行ID。
每個(gè)服務(wù)器在啟動(dòng)時(shí)隨機(jī)生成運(yùn)行ID(runid)。
3、增量同步實(shí)現(xiàn)
1)從服務(wù)器向主服務(wù)器發(fā)送PSYNC命令,攜帶主服務(wù)器的runid和復(fù)制偏移量;
2)主服務(wù)器驗(yàn)證runid和自身runid是否一致,如不一致,則進(jìn)行全量復(fù)制;
3)主服務(wù)器驗(yàn)證復(fù)制偏移量是否在積壓緩沖區(qū)內(nèi),如不在,則進(jìn)行全量復(fù)制;
4)如都驗(yàn)證通過(guò),則主服務(wù)器將保持在積壓區(qū)內(nèi)的偏移量后的所有數(shù)據(jù)發(fā)送給從服務(wù)器,主從服務(wù)器再次回到一致?tīng)顟B(tài)。
4、結(jié)論
1) 只有當(dāng)從服務(wù)器的攜帶的主服務(wù)器runid和offset都符合,Redis才會(huì)采用增量同步的策略,存在著很大的局限性;
2) 因此從服務(wù)器重啟、更換主服務(wù)器、以及斷連時(shí)間過(guò)長(zhǎng),redis都會(huì)采用全量同步的策略。
關(guān)于實(shí)現(xiàn)redis增量同步的的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
文章名稱:實(shí)現(xiàn)redis增量同步的的方法
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article42/ghhsec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、外貿(mào)建站、動(dòng)態(tài)網(wǎng)站、Google、全網(wǎng)營(yíng)銷推廣、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)