Redis的高可用之哨兵模式

Redis哨兵主要是解决Redis主从同步时主数据库宕机问题,使其能够自动进行故障恢复,提高Redis系统的高可用性。

1. 哨兵的作用:

监控 :哨兵通过心跳机制监控主库和从库的存活性。
选主 :当主库宕机时,哨兵会选举出一个领导者哨兵来完成主从切换。
通知:哨兵将新主库的地址通知给所有从库和客户端。

2. 监控机制:

a. 哨兵通过配置文件获取主库地址,并定期发送INFO replication命令来获取主从拓扑关系。

b. 哨兵使用pub/sub机制在sentinel:hello频道上发布和订阅消息,以感知其他哨兵的存在。

c. 哨兵每隔1秒向主库、从库和其他哨兵发送PING命令进行探活。
主观下线 :单个哨兵在一定时间内没有收到主库响应时,认为主库主观下线。
客观下线:当半数以上哨兵同意主库主观下线时,认为主库客观下线。

3. 选主过程:

a. 一旦主库被认定为客观下线,哨兵之间会进行选举,选出一个领导者哨兵。

b. 选举过程采用过半投票机制,是基于哨兵之间的通信和共识算法。

4. 故障恢复:

领导者哨兵负责故障恢复,包括选出一个健康的从库提升为新主库,并将其他从库配置为新主库的从库。

5. 从库选择:

选择从库时会过滤掉不健康的节点,然后根据优先级、复制偏移量和runid进行排序,选择最优的从库作为新主库。

相关推荐
w_t_y_y2 小时前
Nginx Plus
运维·数据库·nginx
源代码•宸3 小时前
分布式缓存-GO(分布式算法之一致性哈希、缓存对外服务化)
开发语言·经验分享·分布式·后端·算法·缓存·golang
川贝枇杷膏cbppg3 小时前
dm_unknown_202512.log:达梦数据库 “未分类日志“
数据库·oracle
计算机毕设VX:Fegn08953 小时前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
求学中--4 小时前
MySQL 数据库完整操作命令与使用指南
数据库·sql·mysql·oracle
code bean4 小时前
【CMake】为什么需要清理 CMake 缓存文件?深入理解 CMake 生成器切换机制
java·spring·缓存
DKunYu5 小时前
误删数据库表导致出现1146报错
数据库
武子康6 小时前
Java-193 Spymemcached 深入解析:线程模型、Sharding 与序列化实践全拆解
java·开发语言·redis·缓存·系统架构·memcached·guava
xinyu_Jina6 小时前
动态媒体资源解析器:PWA、离线缓存与用户数据隐私的架构设计
缓存·媒体
惜分飞6 小时前
sql server 事务日志备份异常恢复案例---惜分飞
前端·数据库·php