Redis哨兵監(jiān)控的使用
1.簡(jiǎn)介
(1)什么是哨兵
- 哨兵是Redis的一種運(yùn)行模式。
- 它專注于對(duì)Redis實(shí)例(主節(jié)點(diǎn)、從節(jié)點(diǎn))運(yùn)行狀態(tài)的監(jiān)控。
- 并能夠在主節(jié)點(diǎn)發(fā)生故障時(shí)通過(guò)一系列的機(jī)制實(shí)現(xiàn)選主及主從切換,實(shí)現(xiàn)故障轉(zhuǎn)移,確保整個(gè)Redis系統(tǒng)的可用性。
- 吹哨人巡查監(jiān)控后臺(tái)master主機(jī)是否故障,如果故障了根據(jù)投票數(shù)自動(dòng)將某一個(gè)從庫(kù)轉(zhuǎn)換為新主庫(kù),繼續(xù)對(duì)外服務(wù)。
(2)功能
- 主從監(jiān)控:監(jiān)控主從redis是否正常運(yùn)行。
- 消息通知:哨兵可以將故障轉(zhuǎn)移的結(jié)果發(fā)送給客戶端。
- 故障轉(zhuǎn)移:主機(jī)異??蛇M(jìn)行主從切換。
- 配置中心:客戶端通過(guò)連接哨兵來(lái)獲得當(dāng)前Redis服務(wù)的主節(jié)點(diǎn)地址。
(3)啟動(dòng)
通用配置(可根據(jù)具體需求添加或修改)
bind 0.0.0.0 daemonize yes protected-mode no port 26379 logfile "/myredis/sentinel26379.log" pidfile /var/run/redis-sentinel26379.pid dir /myredis sentinel monitor mymaster 主機(jī)號(hào) 端口號(hào) 投票數(shù) sentinel auth-pass mymaster 連接密碼
啟動(dòng)命令
redis-sentinel 哨兵配置文件 --sentinel
2.運(yùn)行流程
(1)運(yùn)行流程
某臺(tái)主機(jī)檢測(cè)到主機(jī)狀態(tài)異常,主觀不可用(SDOWN)。
多個(gè)哨兵認(rèn)為主機(jī)主觀下線達(dá)到quorum指定數(shù)量認(rèn)為是客觀下線(odown)。
選出領(lǐng)導(dǎo)者哨兵
- 主機(jī)被判定為客觀下線后,哨兵先協(xié)商選出一個(gè)兵王,并由該節(jié)點(diǎn)進(jìn)行故障遷移。
- 哨兵領(lǐng)導(dǎo)者通過(guò)
Raft
算法選出(先到先得)。
由領(lǐng)導(dǎo)者哨兵開始推動(dòng)故障遷移。
(2)故障遷移(failover)
- 新主登基:選出新的主機(jī)
- 節(jié)點(diǎn)健康前提下,redis.conf文件中,slave-priority或者replica-priority數(shù)字最小的從節(jié)點(diǎn)。
- 復(fù)制偏移位置offset最大的從節(jié)點(diǎn)。
- 最小Run ID的從節(jié)點(diǎn)。
- 群臣俯首
- 執(zhí)行
slaveof no one
命令讓選出來(lái)的從節(jié)點(diǎn)成為新的主節(jié)點(diǎn). - 并通過(guò)
slaveof xxx
命令讓其他節(jié)點(diǎn)成為其從節(jié)點(diǎn)。
- 執(zhí)行
- 舊主敗服
- 將之前已下線的老master設(shè)置為新選出的新master的從節(jié)點(diǎn)。
- 當(dāng)老master重新上線后,它會(huì)成為新master的從節(jié)點(diǎn)。
(3)使用建議
- 哨兵節(jié)點(diǎn)的數(shù)量應(yīng)為多個(gè),哨兵本身應(yīng)該集群,保證高可用。
- 哨兵節(jié)點(diǎn)的數(shù)量應(yīng)該是奇數(shù)(避免出現(xiàn)平票情況)。
- 各個(gè)哨兵節(jié)點(diǎn)的配置應(yīng)一致。
- 如果哨兵節(jié)點(diǎn)部署在Docker等容器里面,尤其要注意端口的正確映射哨。
- 兵集群+主從復(fù)制,并不能保證數(shù)據(jù)零丟失
到此這篇關(guān)于Redis哨兵監(jiān)控的文章就介紹到這了,更多相關(guān)Redis哨兵監(jiān)控內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
redis數(shù)據(jù)的兩種持久化方式對(duì)比
Redis是我們開發(fā)中常用的數(shù)據(jù)庫(kù),今天和大家分享的就是redis持久化的2種方式:RDB(Redis DataBase)和AOF(Apend Only File),希望對(duì)大家學(xué)習(xí)redis有幫助,一起來(lái)看看吧。2017-08-08淺談Redis中的內(nèi)存淘汰策略和過(guò)期鍵刪除策略
本文主要介紹了淺談Redis中的內(nèi)存淘汰策略和過(guò)期鍵刪除策略,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09Redis實(shí)現(xiàn)限量?jī)?yōu)惠券的秒殺功能
文章詳細(xì)分析了避免超賣問題的方法,包括確保一人一單的業(yè)務(wù)邏輯,并提供了代碼實(shí)現(xiàn)步驟和代碼示例,感興趣的朋友跟隨小編一起看看吧2024-12-12RedisTemplate中boundHashOps的使用小結(jié)
redisTemplate.boundHashOps(key)?是 RedisTemplate 類的一個(gè)方法,本文主要介紹了RedisTemplate中boundHashOps的使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04Redis學(xué)習(xí)教程之命令的執(zhí)行過(guò)程詳解
這篇文章主要給大家介紹了關(guān)于Redis學(xué)習(xí)教程之命令的執(zhí)行過(guò)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-03-03