千家信息网

怎么解析Redis中的哨兵模式原理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,今天就跟大家聊聊有关怎么解析Redis中的哨兵模式原理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。本篇文章带大家深入理解下Redis哨兵模式
千家信息网最后更新 2026年10月31日怎么解析Redis中的哨兵模式原理

今天就跟大家聊聊有关怎么解析Redis中的哨兵模式原理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

本篇文章带大家深入理解下Redis哨兵模式原理,聊聊sentinel能干什么,启动sentinel方法和Sentinel工作流程,希望对大家有所帮助!

一、Redis sentinel是什么?

Redis Sentinel是Redis的官方高可用性解决方案。Redis Sentinel为Redis提供高可用性。实际上,这意味着使用Sentinel可以创建一个Redis集群,在没有人为干预的情况下抵抗某些类型的失败,自动实现故障转移。【相关推荐:Redis视频教程】

二、sentinel能干什么?

1、监控redis集群节点(master+replica)和sentinel节点健康状态

2、自动故障转移:如果master出现故障,sentinel可以实现故障转移,并且通知客户端连接新的master。

3、通知:通过api,可以发送通知到管理员,开发人员,监控的redis实例出现了故障

4、配置中心:客户端连接到sentinel,sentinel可以访问master将节点信息返回给客户端

三、启动sentinel方法

1、redis-sentinel /path/to/sentinel.conf

2、redis-server /path/to/sentinel.conf --sentinel

sentinel.conf配置说明如下

# 配置需要监控的master节点信息 2代表法定人数 作用是表示需要最少需要多少个sentinel节点同意#master节点不可达才标记为客观下线#举例 5个sentinel实例 quorum设置成2 那么有2个sentinel节点认为master不可达,#则其中一个会启动故障转移#如果至少有三个哨兵可到达,故障转移将被授权并实际启动。sentinel monitor mymaster 127.0.0.1 6379 2 #只需要配置master sentinel会自动检测slave信息sentinel down-after-milliseconds mymaster 60000 #如果master在指定时间内没有响应ping命令/或报错,则认为主观下线了。sentinel failover-timeout mymaster 180000sentinel parallel-syncs mymaster 1 #指定故障转移的时候,同时支持多少个replica并行的与master同步数据,越小故障转移越久#以上配置可以通过SENTINEL SET command.来实时修改。sentinel monitor resque 192.168.1.3 6380 4sentinel down-after-milliseconds resque 10000sentinel failover-timeout resque 180000sentinel parallel-syncs resque 5

注意点:

Redis-sentinel必须使用配置文件启动,重启需要根据配置文件恢复,默认打开26379端口,sentinel之间必须开放端口访问,方便相互访问。

四、Sentinel工作流程

1、首先sentinel之间是通过redis的pub/subscribe机制实现动态感知。

客观下线:

当主观下线的节点是主节点时,哨兵节点会通过指令sentinel is-masterdown-by-addr寻求其它哨兵节点对主节点的判断,当超过quorum(在sentinel配置中配置的法定人数)个数,此时哨兵节点则认为该主节点确实有问题,这样就客观下线了,大部分哨兵节点都同意下线操作,也就说是客观下线。

注意客观下线只针对master节点生效,它会触发故障转移

3,master下线了,需要进行故障转移

这里又分为两步,首先需要选择sentinel哨兵主节点,通过sentinel主节点来进行redis的故障转移。

首先是sentinel选举领导者。使用raft算法(状态共识算法)。

每一个Sentinel节点都可以成为Leader,当一个Sentinel节点确认redis集群的主节点主观下线后,会请求其他Sentinel节点要求将自己选举为Leader。被请求的Sentinel节点如果没有同意过其他Sentinel节点的选举请求,则同意该请求(选举票数+1),否则不同意。

如果一个Sentinel节点获得的选举票数达到Leader最低票数(quorum和Sentinel节点数/2+1的最大值),则该Sentinel节点选举为Leader;否则重新进行选举。

Raft核心思想:先到先得,少数服从多数。

sentinel选举出主节点后,sentinel主节点需要选举出redis集群主节点,构建新的集群关系。

选举新redis主节点的依据是:

1、与sentinel断开连接的时间。过滤发现与主sentinel服务器断开连接的时间超过配置的主机超时时间down-after-milliseconds的副本slaves

2、副本优先级。 优先选择replica-priority低的。

3、如果优先级相同,已处理复制偏移量。越大越优先,这个更符合业务场景功能。

4、如果复制offset相同,就看运行ID。优先选择小的。

选择出master节点后,开始维护集群关系。

1、sentinel节点,向新主节点发送,slave no one命令,让它成为独立节点

2、sentinel节点,向其他节点发送 slaveof ip port,跟随到主节点

五、总结

通过上面的分析,sentinel通过定时监控手段,可以实现自动故障转移,不过sentinel还是有一些问题,比如单个master节点情况下,数据存在丢失的可能,并且如果单机性能有限,也没有横向扩展的能力。

看完上述内容,你们对怎么解析Redis中的哨兵模式原理有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

节点 故障 下线 选举 配置 哨兵 集群 客观 时间 监控 选择 原理 模式 主观 信息 内容 客户 客户端 票数 相同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技工作委员会主任 西安纸贵互联网科技有限公司 科技互联网技术 麻工互联网科技 西安互联网科技公司 赫美联合互联网科技 互联网科技生活的内容 衡水科技产业互联网平台 现代科技和互联网有关系吗 须眉科技是互联网公司吗 互联网科技项目计划书材料类 江阴互联网智能科技产品进口 宜昌元轩互联网科技有限公司 区块链结合互联网科技 从那以后互联网科技有限公司 易企秀互联网科技是做什么的 数字互联网科技有限公司 长沙易易互联网科技有限公司 互联网高科技绘画 伍佰万互联网科技是干嘛的 什么是科技互联网 开启互联网科技时代小说 江苏南京365互联网科技 荆州市昕露互联网络科技有限公司 互联网科技产业特征 辽宁互联网新科技 成都互联网科技公司工作好不好 烟台灵鸽互联网科技有限公司 互联网科技品牌 数字科技和互联网金融哪个好
0