Redis哨兵監(jiān)控的使用
更新時間:2023年11月12日 11:22:30 作者:knookda
在Redis集群模式中,哨兵模式是一種常用的方案,本文主要介紹了Redis哨兵監(jiān)控的使用,具有一定的參考價值,感興趣的可以了解一下
1.簡介
(1)什么是哨兵
- 哨兵是Redis的一種運行模式。
- 它專注于對Redis實例(主節(jié)點、從節(jié)點)運行狀態(tài)的監(jiān)控。
- 并能夠在主節(jié)點發(fā)生故障時通過一系列的機制實現(xiàn)選主及主從切換,實現(xiàn)故障轉(zhuǎn)移,確保整個Redis系統(tǒng)的可用性。
- 吹哨人巡查監(jiān)控后臺master主機是否故障,如果故障了根據(jù)投票數(shù)自動將某一個從庫轉(zhuǎn)換為新主庫,繼續(xù)對外服務(wù)。
(2)功能
- 主從監(jiān)控:監(jiān)控主從redis是否正常運行。
- 消息通知:哨兵可以將故障轉(zhuǎn)移的結(jié)果發(fā)送給客戶端。
- 故障轉(zhuǎn)移:主機異常可進行主從切換。
- 配置中心:客戶端通過連接哨兵來獲得當前Redis服務(wù)的主節(jié)點地址。
(3)啟動
通用配置(可根據(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 主機號 端口號 投票數(shù) sentinel auth-pass mymaster 連接密碼
啟動命令
redis-sentinel 哨兵配置文件 --sentinel
2.運行流程
(1)運行流程
某臺主機檢測到主機狀態(tài)異常,主觀不可用(SDOWN)。
多個哨兵認為主機主觀下線達到quorum指定數(shù)量認為是客觀下線(odown)。
選出領(lǐng)導者哨兵
- 主機被判定為客觀下線后,哨兵先協(xié)商選出一個兵王,并由該節(jié)點進行故障遷移。
- 哨兵領(lǐng)導者通過
Raft
算法選出(先到先得)。
由領(lǐng)導者哨兵開始推動故障遷移。
(2)故障遷移(failover)
- 新主登基:選出新的主機
- 節(jié)點健康前提下,redis.conf文件中,slave-priority或者replica-priority數(shù)字最小的從節(jié)點。
- 復制偏移位置offset最大的從節(jié)點。
- 最小Run ID的從節(jié)點。
- 群臣俯首
- 執(zhí)行
slaveof no one
命令讓選出來的從節(jié)點成為新的主節(jié)點. - 并通過
slaveof xxx
命令讓其他節(jié)點成為其從節(jié)點。
- 執(zhí)行
- 舊主敗服
- 將之前已下線的老master設(shè)置為新選出的新master的從節(jié)點。
- 當老master重新上線后,它會成為新master的從節(jié)點。
(3)使用建議
- 哨兵節(jié)點的數(shù)量應(yīng)為多個,哨兵本身應(yīng)該集群,保證高可用。
- 哨兵節(jié)點的數(shù)量應(yīng)該是奇數(shù)(避免出現(xiàn)平票情況)。
- 各個哨兵節(jié)點的配置應(yīng)一致。
- 如果哨兵節(jié)點部署在Docker等容器里面,尤其要注意端口的正確映射哨。
- 兵集群+主從復制,并不能保證數(shù)據(jù)零丟失
到此這篇關(guān)于Redis哨兵監(jiān)控的文章就介紹到這了,更多相關(guān)Redis哨兵監(jiān)控內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
RedisTemplate中boundHashOps的使用小結(jié)
redisTemplate.boundHashOps(key)?是 RedisTemplate 類的一個方法,本文主要介紹了RedisTemplate中boundHashOps的使用小結(jié),具有一定的參考價值,感興趣的可以了解一下2024-04-04