
【Redis】哨兵模式 Sentinel
故障检测:通过定期的心跳检测,识别主从节点的状态异常。 故障转移:在检测到主节点故障后,自动将从节点提升为新的主节点。 客户端通知:在故障转移过程中,向客户端通知主从节点的变化。 部署复杂:需要额外的 Sentinel 节点和配置,增加系统维护难度。 存储限制:每个 Sentinel 节点都需要存储主从节点的全量数据,可能占用较大存储空间。 不支持从节点故障转移:Sentinel 仅支持对主节点的故障转移,不提供从节点的自动故障处理。
发布日期:2021-05-07 21:21:51
浏览次数:23
分类:精选文章
本文共 1150 字,大约阅读时间需要 3 分钟。
Redis Sentinel 详解
Sentinel 简介
Redis Sentinel 是一个分布式系统中的服务代理,专门用于 Redis 集群中的故障检测、故障转移以及客户端通知。它通过定期监控 Redis 主节点(Master)和从节点(Slave)的状态,实现主从节点的自动故障转移。
Sentinel 的核心功能
Sentinel 的监控机制
Sentinel 的核心在于实时监控 Redis 集群的状态。它通过三个主要任务确保对主从节点的信息掌握:
定时任务说明
每 10 秒的主从节点信息监控
Sentinel 会向主节点和从节点发送INFO
命令,获取最新的拓扑结构。这一机制可以实时感知从节点的状态变化,识别新的从节点加入。每 2 秒的主节点状态交互
通过 Redis 的__sentinel__:hello
频道,Sentinel 与其他节点交换主节点状态信息。这种机制为后续的客观下线和领导者选举提供了必要的数据支持。每 1 秒的心跳检测
Sentinel 会向主节点、从节点以及其他 Sentinel 节点发送PING
命令,确认节点的状态。这个定时任务是判断节点是否可达的重要依据。故障转移过程
当 Sentinel 确认主节点出现故障时,会启动故障转移流程:
故障转移步骤
选举领导者
在主节点故障被客观下线后,Sentinel 会选举出一个新的领导者。每个 Sentinel 节点都有资格参与选举,票数超过半数即可成为领导者。选择合适的从节点
Sentinel 会根据从节点的优先级(slave-priority
)和复制偏移量(offset
)等条件,选择最适合的从节点作为新的主节点。执行故障转移
- 将选出的从节点设置为新的主节点。
- 指令其余从节点对新主节点进行复制。
- 原主节点被更新为从节点,继续关注其恢复状态。
Sentinel 的局限性
尽管 Sentinel 提供了强大的故障转移能力,但也有其局限性:
总结
通过对 Sentinel 的监控机制、故障转移流程以及其局限性的分析,可以清晰地理解其在 Redis 集群中的作用。了解 Sentinel 的工作原理,对于 Redis 集群的高可用性设计至关重要。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月13日 21时13分29秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
8051单片机(STC89C52)以定时器中断模式实现两倒计时器异步计时
2019-03-05
用 wxPython 打印你的 App
2019-03-05
vue项目通过vue.config.js配置文件进行proxy反向代理跨域
2019-03-05
android:使用audiotrack 类播放wav文件
2019-03-05
聊聊我的五一小假期
2019-03-05
LeetCode:28. 实现 strStr()——————简单
2019-03-05
Lionheart万汇:布林线双底形态分析技巧
2019-03-05
数据库三个级别封锁协议
2019-03-05
ACM/NCPC2016 C Card Hand Sorting(upc 3028)
2019-03-05
方法重写
2019-03-05
Java求逆波兰表达式的结果(栈)
2019-03-05
ubuntu学习笔记-常用文件、命令以及作用(hosts、vim、ssh)
2019-03-05
SLAM学习笔记-求解视觉SLAM问题
2019-03-05
普歌-允异团队-HashMap面试题
2019-03-05
还在一个一个手动安装虚拟机吗?Cobbler自动部署装机一键最小化安装打把游戏就好了
2019-03-05
程序员应该知道的97件事
2019-03-05
create-react-app路由的实现原理
2019-03-05
Linux环境变量配置错误导致命令不能使用(杂谈)
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05