那天,我被拉入一個(gè)Redis群聊···
我是Redis,一個(gè)叫Antirez的男人把我?guī)У搅诉@個(gè)世界上。
那天,Redis基友群里,許久未見(jiàn)的大白發(fā)來(lái)了一條消息···


于是,大白拉了一個(gè)新的群

以后的日子中,咱們哥仨相互配合,日常工作中最多的就是數(shù)據(jù)同步了

如果主節(jié)點(diǎn)有數(shù)據(jù)寫(xiě)入、刪除、修改命令,也會(huì)把這些命令挨個(gè)通知到從節(jié)點(diǎn),我們把這叫做命令傳播。

通過(guò)這樣的方式,我們主節(jié)點(diǎn)與從節(jié)點(diǎn)之間數(shù)據(jù)就能保持同步了~
有一次,我不小心掉線了~



我們用上了新的數(shù)據(jù)同步策略,效率高了不少,就算偶爾掉個(gè)線,也能很快把缺失的數(shù)據(jù)給補(bǔ)上。
就這樣過(guò)了一段時(shí)間···


新添了人手,我們準(zhǔn)備大干一場(chǎng)!
為了及時(shí)獲得和更新主從節(jié)點(diǎn)的信息,咱們哨兵每隔十秒鐘就要用INFO命令去問(wèn)候一下主節(jié)點(diǎn),主節(jié)點(diǎn)會(huì)告訴我他有哪些從節(jié)點(diǎn)

為了更加及時(shí)知道大家是否掉線,咱們哨兵每隔一秒都要用PING命令問(wèn)候一下群里的各個(gè)小伙伴:


如果在設(shè)置的時(shí)間里沒(méi)有收到回復(fù),我就知道這家伙多半是跪了,就該啟動(dòng)故障轉(zhuǎn)移了
不過(guò)這只是我的主觀意見(jiàn),光我一個(gè)人說(shuō)了不算,為了防止誤判,我還得去管理員小群里征求一下大家的意見(jiàn):




接下來(lái),咱們就開(kāi)始了第一次選舉。



經(jīng)過(guò)一番努力,我終于完成了故障轉(zhuǎn)移,現(xiàn)在R2是主節(jié)點(diǎn)了。
不過(guò)沒(méi)過(guò)多久,R1又回來(lái)了:

以上就是我們的日常工作了,通過(guò)咱們幾個(gè)小伙伴的齊心協(xié)力,構(gòu)成了一個(gè)高可用的緩存服務(wù),MySQL大哥再也不敢小瞧我們了。

往期TOP5文章
CPU明明8個(gè)核,網(wǎng)卡為啥拼命折騰一號(hào)核?
因?yàn)橐粋€(gè)跨域請(qǐng)求,我差點(diǎn)丟了飯碗
哈希表哪家強(qiáng)?幾大編程語(yǔ)言吵起來(lái)了!
