溫馨提示×

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

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

如何使用Redis的主從復(fù)制?

發(fā)布時(shí)間:2020-05-25 15:48:28 來源:億速云 閱讀:176 作者:鴿子 欄目:關(guān)系型數(shù)據(jù)庫

mysql一樣,redis也支持主從復(fù)制、讀寫分離,且配置比mysql要簡(jiǎn)單很多。下面我們來一起看看redis的主從復(fù)制。

建立復(fù)制

默認(rèn)情況下,Redis都是主節(jié)點(diǎn)?,F(xiàn)在,我來演示下如何開啟主從復(fù)制。

首先,開啟兩個(gè)redis服務(wù),這兩個(gè)redis服務(wù),除了綁定的端口不同及持久化的文件不同,其他配置完全一致

127.0.0.1:6379> keys *
1) "age"
2) "name"

127.0.0.1:6380> keys *
(empty list or set)

6379這個(gè)redis目前有兩個(gè)鍵,而6380目前是空的。建立6379余6380之間的主從關(guān)系,讓6379作為主節(jié)點(diǎn),6380作為從節(jié)點(diǎn)。

建立復(fù)制有兩個(gè)方式:

  • 修改6380的配置文件,在該配置文件中加上slaveof 127.0.0.1 6379,然后重啟redis服務(wù)

  • 動(dòng)態(tài)修改,直接輸入slaveof 127.0.0.1 6379

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> keys *
1) "name"
2) "age"

可以看到,復(fù)制已經(jīng)建立了,現(xiàn)在6380數(shù)據(jù)和6379是一致的了。

分別對(duì)6379及6380執(zhí)行info replication命令,可以看到相關(guān)信息。

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
……


127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
……

斷開復(fù)制

斷開復(fù)制操作非常簡(jiǎn)單,只需執(zhí)行slaveof no one即可。

127.0.0.1:6380> slaveof no one
OK

另外還可以直接切換主節(jié)點(diǎn)。比如,現(xiàn)在6380是6370的從節(jié)點(diǎn),現(xiàn)在6380想斷開6379的主從關(guān)系,與6381建立新的復(fù)制關(guān)系。那么6380只需執(zhí)行slaveof 127.0.0.1 6381即可。

但切主的時(shí)候需要注意一點(diǎn),從節(jié)點(diǎn)之前的數(shù)據(jù)將會(huì)被清空,然后再去復(fù)制新主節(jié)點(diǎn)的數(shù)據(jù)。所以,如果之前的數(shù)據(jù)有用且沒有備份下,且不可進(jìn)行切主操作。

密碼校驗(yàn)

若主節(jié)配置了requirepass,那么從節(jié)點(diǎn)就需要設(shè)置masterauth

只讀

默認(rèn)情況下從節(jié)點(diǎn)執(zhí)行進(jìn)行讀操作,不能進(jìn)行寫操作。因?yàn)檫@么做是非常必要的,如果從節(jié)點(diǎn)進(jìn)行了寫操作,那么就會(huì)造成主從節(jié)點(diǎn)的數(shù)據(jù)不一致的情況。如果想從節(jié)點(diǎn)也可以寫的話,修改配置項(xiàng)slave-read-only=no即可。

應(yīng)用場(chǎng)景

redis的復(fù)制常見的應(yīng)用場(chǎng)景有

  • 數(shù)據(jù)的實(shí)時(shí)備份,一般此種情況,只有一個(gè)從節(jié)點(diǎn),從節(jié)點(diǎn)開啟aof持久哈,節(jié)點(diǎn)的主要任務(wù)就是實(shí)時(shí)備份數(shù)據(jù)。

  • 故障轉(zhuǎn)移,如果主節(jié)點(diǎn)發(fā)生了故障的話,那么可以使用從節(jié)點(diǎn)來繼續(xù)運(yùn)行系統(tǒng)

  • 讀寫分離,比較適合于讀比較多的場(chǎng)景,主節(jié)點(diǎn)進(jìn)行寫操作,多個(gè)從節(jié)點(diǎn)進(jìn)行讀操作。因?yàn)閺?fù)制是異步進(jìn)行的,所以從節(jié)點(diǎn)數(shù)據(jù)可能會(huì)有延遲,這點(diǎn)也是開發(fā)時(shí)候需要注意的。

以上就是Redis主從復(fù)制的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!

向AI問一下細(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