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ī)異常可進(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)文章希望大家以后多多支持腳本之家!
- java獲取redis日志信息與動(dòng)態(tài)監(jiān)控信息的方法
- 關(guān)于redis狀態(tài)監(jiān)控和性能調(diào)優(yōu)詳解
- Redis監(jiān)控工具RedisInsight安裝與使用
- redis哨兵常用命令和監(jiān)控示例詳解
- Redis性能監(jiān)控的實(shí)現(xiàn)
- Redis shake實(shí)現(xiàn)可視化監(jiān)控的示例代碼
- 通過(guò)prometheus監(jiān)控redis實(shí)時(shí)運(yùn)行狀態(tài)的操作方法
- 深入理解Redis 延遲監(jiān)控的項(xiàng)目實(shí)踐
相關(guān)文章
redis實(shí)現(xiàn)簡(jiǎn)單隊(duì)列
這篇文章主要為大家詳細(xì)介紹了redis實(shí)現(xiàn)簡(jiǎn)單隊(duì)列的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10
Redis Cluster Pipeline導(dǎo)致的死鎖問(wèn)題解決
本文主要介紹了Redis Cluster Pipeline導(dǎo)致的死鎖問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-10-10
redis中token失效引發(fā)的一次生產(chǎn)事故
項(xiàng)目再測(cè)試的時(shí)候發(fā)現(xiàn)不定時(shí)token失效,本文主要介紹了redis中token失效引發(fā)的一次生產(chǎn)事故,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-03-03
Spark刪除redis千萬(wàn)級(jí)別set集合數(shù)據(jù)實(shí)現(xiàn)分析
這篇文章主要為大家介紹了Spark刪除redis千萬(wàn)級(jí)別set集合數(shù)據(jù)實(shí)現(xiàn)過(guò)程分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
通過(guò)Redis實(shí)現(xiàn)Token黑名單機(jī)制的具體方案
如果沒(méi)有為Token提供主動(dòng)失效機(jī)制,一旦Token被簽發(fā),在過(guò)期之前將一直有效,存一些安全隱患,所以本文通過(guò)將已失效的Token存儲(chǔ)在Redis中,可以確保Token在被主動(dòng)注銷后無(wú)法繼續(xù)使用,需要的朋友可以參考下2025-11-11
Windows下注冊(cè)Redis服務(wù)失敗的解決方案
在Windows系統(tǒng)中,有時(shí)候我們需要將Redis作為一個(gè)服務(wù)運(yùn)行,以便于在后臺(tái)長(zhǎng)期運(yùn)行并提供服務(wù),本篇技術(shù)博客文章將為你解答在Windows下注冊(cè)Redis服務(wù)失敗的一些常見問(wèn)題,并提供相應(yīng)的解決方案,需要的朋友可以參考下2024-11-11

