一、redis集群方案
Redis集群是 Redis 提供的分布式數(shù)據(jù)庫方案,集群通過分片(sharding)來實(shí)現(xiàn)數(shù)據(jù)共享,并提供復(fù)制和故障轉(zhuǎn)移。redis集群提供分布式數(shù)據(jù)庫方案,前面我們將的主從復(fù)制和哨兵模式可以知道,只會(huì)有一個(gè)主服務(wù)器(master)。
Redis 集群是 Redis 提供的分布式數(shù)據(jù)庫方案,集群通過分片(sharding)來實(shí)現(xiàn)數(shù)據(jù)共享,并提供復(fù)制和故障轉(zhuǎn)移。redis集群提供分布式數(shù)據(jù)庫方案,前面我們將的主從復(fù)制和哨兵模式可以知道,只會(huì)有一個(gè)主服務(wù)器(master)。
Redis集群的主從復(fù)制,其實(shí)和單機(jī)的主從復(fù)制是一樣的。前面 Redis集群結(jié)構(gòu)圖可以看到。單個(gè)節(jié)點(diǎn)中有一個(gè) master 和多個(gè)slave 。這些 slave 會(huì)自動(dòng)的同步 master中的數(shù)據(jù)。注意的是,這些 salve 只會(huì)同步 所屬的 master 中的數(shù)據(jù),集群中其他的 master 數(shù)據(jù)是不會(huì)同步的。
同樣的,當(dāng)個(gè)節(jié)點(diǎn)中可以配置多個(gè)哨兵,來監(jiān)控這個(gè)節(jié)點(diǎn)中的master是否下線了,如果下線了就會(huì)將這個(gè)節(jié)點(diǎn)的slave選擇一個(gè)升級(jí)成 master并繼承之前 master的分片,繼續(xù)工作。
但是其實(shí)啊,在集群模式中,并沒有配置哨兵,我們也能實(shí)現(xiàn)故障的自動(dòng)轉(zhuǎn)移。
延伸閱讀:
二、Redis哨兵模式的作用
監(jiān)控所有服務(wù)器是否正常運(yùn)行:通過發(fā)送命令返回監(jiān)控服務(wù)器的運(yùn)行狀態(tài),處理監(jiān)控主服務(wù)器、從服務(wù)器外,哨兵之間也相互監(jiān)控。
故障切換:當(dāng)哨兵監(jiān)測(cè)到master宕機(jī),會(huì)自動(dòng)將slave切換成master,然后通過發(fā)布訂閱模式通知其他的從服務(wù)器,修改配置文件,讓它們切換master。同時(shí)那臺(tái)有問題的舊主也會(huì)變?yōu)樾轮鞯膹?,也就是說當(dāng)舊的主即使恢復(fù)時(shí),并不會(huì)恢復(fù)原來的主身份,而是作為新主的一個(gè)從。