溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

redis主從復(fù)制的原理是什么?

發(fā)布時(shí)間:2020-04-28 14:53:58 來(lái)源:億速云 閱讀:705 作者:栢白 欄目:關(guān)系型數(shù)據(jù)庫(kù)

redis主從復(fù)制的原理是什么?為了大家讓大家更加了解redis主從復(fù)制,小編給大家總結(jié)了以下內(nèi)容,一起往下看吧。

redis的復(fù)制功能是支持多個(gè)數(shù)據(jù)庫(kù)之間的數(shù)據(jù)同步。一類是主數(shù)據(jù)庫(kù)(master)一類是從數(shù)據(jù)庫(kù)(slave),主數(shù)據(jù)庫(kù)可以進(jìn)行讀寫(xiě)操作,當(dāng)發(fā)生寫(xiě)操作的時(shí)候自動(dòng)將數(shù)據(jù)同步到從數(shù)據(jù)庫(kù),而從數(shù)據(jù)庫(kù)一般是只讀的,并接收主數(shù)據(jù)庫(kù)同步過(guò)來(lái)的數(shù)據(jù),一個(gè)主數(shù)據(jù)庫(kù)可以有多個(gè)從數(shù)據(jù)庫(kù),而一個(gè)從數(shù)據(jù)庫(kù)只能有一個(gè)主數(shù)據(jù)庫(kù)。

通過(guò)redis的主從復(fù)制功能可以很好的實(shí)現(xiàn)數(shù)據(jù)庫(kù)的讀寫(xiě)分離,提高服務(wù)器的負(fù)載能力,主服務(wù)器主要負(fù)責(zé)寫(xiě)操作,從服務(wù)器主要負(fù)責(zé)讀操作

主從復(fù)制的過(guò)程:

1:當(dāng)一個(gè)從數(shù)據(jù)庫(kù)啟動(dòng)時(shí),會(huì)向主數(shù)據(jù)庫(kù)發(fā)送sync命令,

2:主數(shù)據(jù)庫(kù)接收到sync命令后會(huì)開(kāi)始在后臺(tái)保存快照(執(zhí)行rdb操作),并將保存期間接收到的命令緩存起來(lái)

3:當(dāng)快照完成后,redis會(huì)將快照文件和所有緩存的命令發(fā)送給從數(shù)據(jù)庫(kù)。

4:從數(shù)據(jù)庫(kù)收到后,會(huì)載入快照文件并執(zhí)行收到的緩存的命令。

注意:redis2.8之前的版本:當(dāng)主從數(shù)據(jù)庫(kù)同步的時(shí)候從數(shù)據(jù)庫(kù)因?yàn)榫W(wǎng)絡(luò)原因斷開(kāi)重連后會(huì)重新執(zhí)行上述操作,不支持?jǐn)帱c(diǎn)續(xù)傳。redis2.8之后支持?jǐn)帱c(diǎn)續(xù)傳。

注意:從 Redis 2.8 開(kāi)始, 為了保證數(shù)據(jù)的安全性, 可以通過(guò)配置min-slaves-to-write, 讓一個(gè)主節(jié)點(diǎn)在至少有N個(gè)從節(jié)點(diǎn)的情況下才能執(zhí)行寫(xiě)操作。從節(jié)點(diǎn)以每秒一次的頻率ping主節(jié)點(diǎn),主節(jié)點(diǎn)會(huì)記錄各個(gè)從服務(wù)器最后一次向它發(fā)送ping的時(shí)間。用戶可以通過(guò)配置, 指定網(wǎng)絡(luò)延遲的最大值 min-slaves-max-lag以及執(zhí)行寫(xiě)操作所需的最少?gòu)姆?wù)器數(shù)量

  min-slaves-to-write
  min-slaves-to-write 3
  min-slaves-max-lag 10

如果至少有 min-slaves-to-write 個(gè)從服務(wù)器, 并且這些服務(wù)器的延遲值都少于 min-slaves-max-lag 秒, 那么主服務(wù)器才會(huì)執(zhí)行客戶端請(qǐng)求的寫(xiě)操作。只要有一個(gè)條件不滿足,寫(xiě)操作就不會(huì)執(zhí)行,主服務(wù)器會(huì)向請(qǐng)求執(zhí)行寫(xiě)操作的客戶端返回一個(gè)錯(cuò)誤。

二、主從復(fù)制的部署:

Redis主從結(jié)構(gòu)支持一主多從

主節(jié)點(diǎn):192.168.1.170

從節(jié)點(diǎn):192.168.1.171

注意:所有從節(jié)點(diǎn)的配置都一樣

方式1:手動(dòng)修改配置文件

只需要額外修改從節(jié)點(diǎn)中redis的配置文件中的slaveof屬性即可

slaveof 192.168.1.170 6379

啟動(dòng)170主節(jié)點(diǎn)上面的redis,查看redis的info信息(執(zhí)行info命令 )

redis主從復(fù)制的原理是什么?

啟動(dòng)171從節(jié)點(diǎn)上面的redis

redis主從復(fù)制的原理是什么?

查看redis的info信息

方式2:動(dòng)態(tài)設(shè)置

通過(guò)redis-cli 連接到從節(jié)點(diǎn)服務(wù)器,執(zhí)行下面命令即可。

redis主從復(fù)制的原理是什么?

三、主從復(fù)制需要注意的問(wèn)題:

① 如果你使用主從復(fù)制,那么要確保你的master激活了持久化,或者確保它不會(huì)在當(dāng)?shù)艉笞詣?dòng)重啟。slave是master的完整備份,因此如果master通過(guò)一個(gè)空數(shù)據(jù)集重啟,slave也會(huì)被清掉。

②在配置redis復(fù)制功能的時(shí)候如果主數(shù)據(jù)庫(kù)設(shè)置了密碼,需要在從數(shù)據(jù)的配置文件中通過(guò)masterauth參數(shù)設(shè)置主數(shù)據(jù)庫(kù)的密碼,這樣從數(shù)據(jù)庫(kù)在連接主數(shù)據(jù)庫(kù)時(shí)就會(huì)自動(dòng)使用auth命令認(rèn)證了。相當(dāng)于做了一個(gè)免密碼登錄。

看完上文,你對(duì)redis主從復(fù)制的原理是什么大概了解了嗎?如果想了解更多,歡迎關(guān)注億速云行業(yè)資訊頻道哦!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI