假如把Redis服務器們拉到一個羣,看看他們是怎麼工作的?

我是Redis,一個叫Antirez的男人把我帶到了這個世界上。

那天,Redis基友羣裏,許久未見的大白髮來了一條消息···

於是,大白拉了一個新的羣

以後的日子中,咱們哥仨相互配合,日常工作中最多的就是數據同步了

如果主節點有數據寫入、刪除、修改命令,也會把這些命令挨個通知到從節點,我們把這叫做命令傳播

通過這樣的方式,我們主節點與從節點之間數據就能保持同步了~

有一次,我不小心掉線了~

我們用上了新的數據同步策略,效率高了不少,就算偶爾掉個線,也能很快把缺失的數據給補上。

就這樣過了一段時間···

新添了人手,我們準備大幹一場!

爲了及時獲得和更新主從節點的信息,咱們哨兵每隔十秒鐘就要用INFO命令去問候一下主節點,主節點會告訴我他有哪些從節點

爲了更加及時知道大家是否掉線,咱們哨兵每隔一秒都要用PING命令問候一下羣裏的各個小夥伴:

如果在設置的時間裏沒有收到回覆,我就知道這傢伙多半是跪了,就該啓動故障轉移了

不過這只是我的主觀意見,光我一個人說了不算,爲了防止誤判,我還得去管理員小羣裏徵求一下大家的意見:

接下來,咱們就開始了第一次選舉。

經過一番努力,我終於完成了故障轉移,現在R2是主節點了。

不過沒過多久,R1又回來了:

以上就是我們的日常工作了,通過咱們幾個小夥伴的齊心協力,構成了一個高可用的緩存服務,MySQL大哥再也不敢小瞧我們了。

【完】

往期TOP5文章

我是Redis,MySQL大哥被我害慘了!

CPU明明8個核,網卡爲啥拼命折騰一號核?

因爲一個跨域請求,我差點丟了飯碗

完了!CPU一味求快出事兒了!

哈希表哪家強?幾大編程語言吵起來了!