redis主從復(fù)制什么時(shí)候復(fù)制

redis主從復(fù)制什么時(shí)候復(fù)制

redis的主從復(fù)制機(jī)制是指可以讓從服務(wù)器(slave)能精確復(fù)制主服務(wù)器(master)的數(shù)據(jù),如下圖所示: ? ? ?(推薦學(xué)習(xí):Redis視頻教程

?redis主從復(fù)制什么時(shí)候復(fù)制

上面的圖表示的是一臺master服務(wù)器與slave服務(wù)器的情況,其實(shí)一臺master服務(wù)器也可以對應(yīng)多臺slave服務(wù)器,如下圖所示:

?redis主從復(fù)制什么時(shí)候復(fù)制

另外,slave服務(wù)器也可以有自己的slave服務(wù)器,這樣的服務(wù)器稱為sub-slave,而這些sub-slave通過主從復(fù)制最終數(shù)據(jù)也能與master保持一致,如下圖所示:

?redis主從復(fù)制什么時(shí)候復(fù)制

主從復(fù)制的方式和工作原理

Redis的主從復(fù)制是異步復(fù)制,異步分為兩個(gè)方面,一個(gè)是master服務(wù)器在將數(shù)據(jù)同步到slave時(shí)是異步的,因此master服務(wù)器在這里仍然可以接收其他請求,一個(gè)是slave在接收同步數(shù)據(jù)也是異步的。

復(fù)制方式

Redis主從復(fù)制分為以下三種方式:

一、當(dāng)master服務(wù)器與slave服務(wù)器正常連接時(shí),master服務(wù)器會發(fā)送數(shù)據(jù)命令流給slave服務(wù)器,將自身數(shù)據(jù)的改變復(fù)制到slave服務(wù)器。

二、當(dāng)因?yàn)楦鞣N原因master服務(wù)器與slave服務(wù)器斷開后,slave服務(wù)器在重新連上master服務(wù)器時(shí)會嘗試重新獲取斷開后未同步的數(shù)據(jù)即部分同步,或者稱為部分復(fù)制。

三、如果無法部分同步(比如初次同步),則會請求進(jìn)行全量同步,這時(shí)master服務(wù)器會將自己的rdb文件發(fā)送給slave服務(wù)器進(jìn)行數(shù)據(jù)同步,并記錄同步期間的其他寫入,再發(fā)送給slave服務(wù)器,以達(dá)到完全同步的目的,這種方式稱為全量復(fù)制。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享