尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
高可用底座:Redis 哨兵机制(Sentinel)底层内核拆解
Redis 哨兵Sentinel底层实现原理的课程笔记进行了重新梳理、排版与精简形成了一篇结构清晰、重点突出的技术文章。彻底搞透 Redis 哨兵底层实现原理本篇笔记将从核心问题、功能作用、底层监控、故障转移与恢复四个维度带你彻底搞懂 Redis 哨兵模式的底层实现机制。一、 Redis 哨兵模式概述1. 解决什么问题Redis 哨兵是一个独立运行的进程用于监控多个主从Master-Slave集群。其核心目的是实现自动化监控与故障切换当 Master 节点宕机时能够自动将 Slave 节点提升为新的 Master 节点。2. 核心功能监控Monitoring负责持续监控 Redis Master 和 Slave 进程是否正常工作。通知Notification当 Redis 实例发生故障时发送报警通知给管理员。自动故障转移Automatic Failover如果 Master 节点挂掉自动将其转移到 Slave 节点上。配置提供者Configuration Provider当故障转移发生时通知客户端更新新的 Master 地址。通俗理解武当派比喻Redis 主从架构好比武当派掌门人就是Master。掌门如果挂了需要从武当七侠Slave中选举新掌门。这就需要一个“哨兵部门”来监控生死、通过投票选举能者最后召开新闻发布会向世界宣布新掌门信息。二、 Redis 哨兵监控的底层实现1. 监控实现机制哨兵通过PING 命令定时检测 Master 和 Slave 的生命状态。每10 秒向主节点和从节点发送INFO命令用于获取最新的主从拓扑关系。2. 询问消息与发布订阅实现原理利用 Sentinel 内置的Pub/Sub发布订阅机制来实现。解决问题发现新的 Sentinel 节点并与其他哨兵节点交换 Master 的状态信息。Publish发布自身掌握的节点状态信息。Subscribe接受其他哨兵节点广播的信息。三、 Redis 故障转移与下线机制1. 主观下线Subjective Down, SDown检测方式哨兵利用 PING 命令检测 Master/Slave 状态。若收到无效回复则标记为主观下线flagsSRI_S_DOWN。配置文件参考sentinel down-after-milliseconds mymaster 30000为什么需要集群单个哨兵容易受到自身网络拥塞或主库高负载的影响而产生误判。因此引入多个哨兵实例组成集群通过多方决策来降低误判率。2. 客观下线Objective Down, ODown实现原理当某个哨兵判定主观下线后会向其他哨兵节点发送询问请求sentinel is-master-down-by-addr。过半机制Quorum当达到指定数量的哨兵都认为 Master 已经下线时才会最终判定 Master 为「客观下线」进而触发故障转移流程。法定数量配置示例sentinel monitor mymaster 127.0.0.1 6379 2sentinel monitor代表监控指令。mymaster主节点自定义名称。127.0.0.1 6379主节点的 IP 与端口。2法定数量Quorum。代表至少需要2 个哨兵实例认为主节点不可用才会触发failover操作。标准公式当有NNN个哨兵实例时必须有N21\frac{N}{2} 12N​1个实例判断为主观下线才能最终判定为客观下线。四、 故障恢复流程与实现1. 选举领头哨兵当 Master 被判定为客观下线后哨兵集群需要选出一个“领头哨兵”来全权负责故障转移工作这个过程采用Raft 算法实现领导者选举。2. 故障转移核心步骤领头哨兵被选出后将按以下步骤完成主从切换选举出新的 Slave 节点过滤掉掉线、响应慢的节点。选择从节点优先级最高slave-priority的节点。若优先级相同选择复制偏移量最大数据最完整的节点。若仍相同选择Run ID 最小的节点。升级 Slave通过SLAVEOF NO ONE命令将选中的 Slave 升级为主节点。构建新集群结构让其余的 Slave 节点去复制新的 Master 节点并通知客户端更新连接地址。
RELATED

相关推荐

微调Whisper模型实现中文方言识别:从原理到部署实战

微调Whisper模型实现中文方言识别:从原理到部署实战

这次我们来看一个非常实用的语音识别项目:如何微调 OpenAI 的 Whisper 模型,让它能听懂并准确识别中文方言,特别是潮州话。对于需要处理方言语音、构建特定领域语音识别系统的开发者来说,这是一个极具价值的实践。 Whisper 作为强…

📅 2026/9/9 13:36:08
朴素贝叶斯模型:从特征独立性假设到改进策略实战

朴素贝叶斯模型:从特征独立性假设到改进策略实战

1. 从“朴素”二字说起:一个被误解的经典模型 如果你接触过机器学习,大概率听说过朴素贝叶斯(Naive Bayes)这个名字。我第一次用它,是在一个垃圾邮件过滤的项目里。当时数据量不大,特征就是邮件里出现的一些…

📅 2026/10/9 2:39:01
多智能体系统中虚假性能提升的识别与治理:基于轨迹相关性的门控机制

多智能体系统中虚假性能提升的识别与治理:基于轨迹相关性的门控机制

1. 项目概述:从“相关智能体轨迹”中识别虚假提升在分布式系统、多智能体协同以及在线实验评估的实践中,我们常常面临一个棘手的问题:如何判断一个观测到的性能提升是真实有效的,还是仅仅由数据中的相关性所导致的“虚假繁荣”&am…

📅 2026/9/12 6:20:46
MORE NEWS

更多资讯

📰

MATLAB语音识别实战:MFCC特征提取与CNN端到端训练

简介:本资源是一套面向本硕博教研学习者的语音识别全流程实践方案,聚焦MFCC特征提取与CNN深度学习模型训练,适用于语音信号处理、模式识别及人工智能课程设计与科研入门。压缩包共2112个文件,主体为2100个语音样本WAV文件&#xf…

📰

MAC地址硬刷工具全解析:从原理到实战的网卡EEPROM烧录指南

简介:这是一份面向网络运维人员与黑群晖玩家的MAC地址硬刷工具合集,用于修改网卡物理地址、克隆或伪装MAC标识,以应对网络认证限制、虚拟机唯一性需求及硬件故障修复等场景。压缩包共197个文件,约4.52MB,包含exe可执行…

📰

开关柜局放监测软件:Modbus RTU 数据落地与 PRPD 图谱可视化

简介:该资源是一套面向电力系统运维与电气工程学习者的开关柜局部放电监测软件,基于Modbus_RTU协议连接TEV、超声波与UHF传感器,实时读取遥测数据和图谱数据,并通过图形界面完成可视化展示,可用于开关柜局部放电状态监…

📰

SPARQL 如何查询本体知识图谱?awesome-ontology 收录的 5 种查询语言入门教程

【免费下载链接】awesome-ontology A curated list of ontology things 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-ontology 点击查看 免费下载 SPARQL 是查询本体知识图谱最主流的语言。开源项目 awesome-ontology 在 Querying 章节 精选了 5 种常用于…

📰

pi-extensions 工程实践:构建、测试与 Changesets 发布体系全拆解

【免费下载链接】pi-extensions A monorepo of Pi Coding Agent extensions 项目地址: https://gitcode.com/gh_mirrors/pi/pi-extensions 点击查看 免费下载 pi-extensions 是一个基于 npm workspaces 的 Monorepo,统一管理 37 个可独立安装的 Pi Codi…

📰

【珍藏整理】ZEBASE Zemax镜头库:500多个光学设计专利的完整上手指南

【珍藏整理】ZEBASE Zemax镜头库:500多个光学设计专利的完整上手指南 【免费下载链接】ZEBASEZemax镜头库 ZEBASE Zemax镜头库ZEBASE Zemax镜头库是一个包含众多光学设计实例的资源文件,提供了600多个ZEMAX档案格式的光学设计专利 项目地址: https://g…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬