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