與mysql一樣,redis也支持主從復(fù)制、讀寫(xiě)分離,且配置比mysql要簡(jiǎn)單很多。下面我們來(lái)一起看看redis的主從復(fù)制。
網(wǎng)站制作、成都網(wǎng)站制作,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)公司已向近1000家企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。建立復(fù)制
默認(rèn)情況下,Redis都是主節(jié)點(diǎn)?,F(xiàn)在,我來(lái)演示下如何開(kāi)啟主從復(fù)制。
首先,開(kāi)啟兩個(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 ……
斷開(kāi)復(fù)制
斷開(kāi)復(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想斷開(kāi)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ù)有用且沒(méi)有備份下,且不可進(jìn)行切主操作。
密碼校驗(yàn)
若主節(jié)配置了requirepass,那么從節(jié)點(diǎn)就需要設(shè)置masterauth
只讀
默認(rèn)情況下從節(jié)點(diǎn)執(zhí)行進(jìn)行讀操作,不能進(jìn)行寫(xiě)操作。因?yàn)檫@么做是非常必要的,如果從節(jié)點(diǎn)進(jìn)行了寫(xiě)操作,那么就會(huì)造成主從節(jié)點(diǎn)的數(shù)據(jù)不一致的情況。如果想從節(jié)點(diǎn)也可以寫(xiě)的話,修改配置項(xiàng)slave-read-only=no即可。
應(yīng)用場(chǎng)景
redis的復(fù)制常見(jiàn)的應(yīng)用場(chǎng)景有
數(shù)據(jù)的實(shí)時(shí)備份,一般此種情況,只有一個(gè)從節(jié)點(diǎn),從節(jié)點(diǎn)開(kāi)啟aof持久哈,節(jié)點(diǎn)的主要任務(wù)就是實(shí)時(shí)備份數(shù)據(jù)。
故障轉(zhuǎn)移,如果主節(jié)點(diǎn)發(fā)生了故障的話,那么可以使用從節(jié)點(diǎn)來(lái)繼續(xù)運(yùn)行系統(tǒng)
讀寫(xiě)分離,比較適合于讀比較多的場(chǎng)景,主節(jié)點(diǎn)進(jìn)行寫(xiě)操作,多個(gè)從節(jié)點(diǎn)進(jìn)行讀操作。因?yàn)閺?fù)制是異步進(jìn)行的,所以從節(jié)點(diǎn)數(shù)據(jù)可能會(huì)有延遲,這點(diǎn)也是開(kāi)發(fā)時(shí)候需要注意的。
以上就是Redis主從復(fù)制的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!