Redis:哨兵模式(Sentinel)原理
生活随笔
收集整理的這篇文章主要介紹了
Redis:哨兵模式(Sentinel)原理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 前言
Redis主從復(fù)制模式不具備自動(dòng)容錯(cuò)和恢復(fù)功能,主機(jī)從機(jī)的宕機(jī)都會(huì)導(dǎo)致前端部分讀寫請(qǐng)求失敗,需要等待機(jī)器重啟或者手動(dòng)切換前端的IP才能恢復(fù)。Redis哨兵模式就解決了Redis主從復(fù)制模式不具備容錯(cuò)和恢復(fù)的功能問題。Sentinel(哨兵)進(jìn)程是用于監(jiān)控redis集群中Master主服務(wù)器工作的狀態(tài),在Master主服務(wù)器發(fā)生故障的時(shí)候,可以實(shí)現(xiàn)Master和Slave服務(wù)器的切換,保證系統(tǒng)的高可用。
2. Redis哨兵模式
哨兵模式是一種特殊的模式,首先Redis提供了哨兵的命令,哨兵是一個(gè)獨(dú)立的進(jìn)程,作為進(jìn)程,它會(huì)獨(dú)立運(yùn)行。其原理是哨兵通過發(fā)送命令,等待Redis服務(wù)器響應(yīng),從而監(jiān)控運(yùn)行的多個(gè)Redis實(shí)例
2.1 Sentinel(哨兵)進(jìn)程的作用
- 監(jiān)控(Monitoring): 哨兵(sentinel) 會(huì)不斷地檢查你的Master和Slave是否運(yùn)作正常。
- 提醒(Notification):當(dāng)被監(jiān)控的某個(gè)Redis節(jié)點(diǎn)出現(xiàn)問題時(shí), 哨兵(sentinel) 可以通過 API 向管理員或者其他應(yīng)用程序發(fā)送通知。
- 自動(dòng)故障遷移(Automatic failover):當(dāng)一個(gè)Master不能正常工作時(shí),哨兵(sentinel) 會(huì)開始一次自動(dòng)故障遷移操作,它會(huì)將失效Master的其中一個(gè)Slave升級(jí)為新的Master, 并讓失效Master的其他Slave改為復(fù)制新的Master;當(dāng)客戶端試圖連接失效的Master時(shí),集群也會(huì)向客戶端返回新Master的地址,使得集群可以使用現(xiàn)在的Master替換失效Master。Master和Slave服務(wù)器切換后,Master的redis.conf、Slave的redis.conf和sentinel.conf的配置文件的內(nèi)容都會(huì)發(fā)生相應(yīng)的改變,即,Master主服務(wù)器的redis.conf配置文件中會(huì)多一行slaveof的配置,sentinel.conf的監(jiān)控目標(biāo)會(huì)隨之調(diào)換。
2.2 Sentinel(哨兵)進(jìn)程的工作方式
3. Redis 哨兵的優(yōu)點(diǎn)和缺點(diǎn)
3.1 優(yōu)點(diǎn)
- 哨兵集群模式是基于主從模式的,所有主從的優(yōu)點(diǎn),哨兵模式同樣具有。
- 主從可以切換,故障可以轉(zhuǎn)移,系統(tǒng)可用性更好。
- 哨兵模式是主從模式的升級(jí),系統(tǒng)更健壯,可用性更高。
3.2 缺點(diǎn)
- Redis較難支持在線擴(kuò)容,在集群容量達(dá)到上限時(shí)在線擴(kuò)容會(huì)變得很復(fù)雜。為避免這一問題,運(yùn)維人員在系統(tǒng)上線時(shí)必須確保有足夠的空間,這對(duì)資源造成了很大的浪費(fèi)。
- 配置復(fù)雜
總結(jié)
以上是生活随笔為你收集整理的Redis:哨兵模式(Sentinel)原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis:主从复制原理
- 下一篇: Redis:Redis集群模式(Clus