redis集群主從模式介紹:? ? ? ? ? ? ? ? (推薦學(xué)習(xí):Redis視頻教程)
為保證數(shù)據(jù)的高可用性,結(jié)合了主從的概念,即:一個(gè)master節(jié)點(diǎn),對(duì)應(yīng)一個(gè)或多個(gè)slave節(jié)點(diǎn)(至少一個(gè))
master負(fù)責(zé)數(shù)據(jù)存取(寫入/查詢); slave負(fù)責(zé)同步master數(shù)據(jù),然后進(jìn)行備份。
redis集群主從模式工作原理:
集群環(huán)境部署完成后,集群中的每個(gè)主節(jié)點(diǎn)都會(huì)定期的向其他主節(jié)點(diǎn)發(fā)送ping消息,如果接收ping消息的主節(jié)點(diǎn),沒有在規(guī)定的時(shí)間內(nèi)返回pong消息,那么發(fā)送ping消息的主節(jié)點(diǎn)就會(huì)將其標(biāo)記為疑似fail狀態(tài),集群主節(jié)點(diǎn)之間會(huì)通過互相發(fā)送消息的方式來交換集群中各個(gè)主節(jié)點(diǎn)的狀態(tài)信息。
在集群中,如果半數(shù)以上的主節(jié)點(diǎn)都將某個(gè)主節(jié)點(diǎn)標(biāo)記為疑似fail狀態(tài),那么被標(biāo)記的主節(jié)點(diǎn)將被正式標(biāo)記為fail狀態(tài)。
同時(shí)會(huì)向集群廣播一條XXX主節(jié)點(diǎn)fail的消息,所有收到消息的主節(jié)點(diǎn)都會(huì)把XXX主節(jié)點(diǎn)標(biāo)記為fail狀態(tài)。
Redis主從模式的特點(diǎn):
一個(gè)Master可以有多個(gè)Slaves
默認(rèn)配置下,master節(jié)點(diǎn)可以進(jìn)行讀和寫,slave節(jié)點(diǎn)只能進(jìn)行讀操作,寫操作被禁止
不要修改配置讓slave節(jié)點(diǎn)支持寫操作,沒有意義,因?yàn)椋紫葘懭氲臄?shù)據(jù)不會(huì)被同步到其他節(jié)點(diǎn),其次,當(dāng)master節(jié)點(diǎn)修改同一條數(shù)據(jù)后,slave節(jié)點(diǎn)的數(shù)據(jù)會(huì)被覆蓋掉
slave節(jié)點(diǎn)掛了不影響其他slave節(jié)點(diǎn)的讀和master節(jié)點(diǎn)的讀和寫,重新啟動(dòng)后會(huì)將數(shù)據(jù)從master節(jié)點(diǎn)同步過來
master節(jié)點(diǎn)掛了以后,不影響slave節(jié)點(diǎn)的讀,Redis將不再提供寫服務(wù),master節(jié)點(diǎn)啟動(dòng)后Redis將重新對(duì)外提供寫服務(wù)。
master節(jié)點(diǎn)過了以后,不會(huì)從slave節(jié)點(diǎn)中重新選一個(gè)master。
對(duì)由密碼的情況說明:當(dāng)master節(jié)點(diǎn)設(shè)置密碼時(shí):
* 客戶端訪問master需要密碼;
* 啟動(dòng)slave需要密碼,在配置中進(jìn)行配置即可;
* 客戶端訪問slave不需要密碼
更多Redis相關(guān)技術(shù)文章,請(qǐng)?jiān)L問Redis視頻教程欄目進(jìn)行學(xué)習(xí)!