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