千家信息网

Redis哨兵模式是什么

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要讲解了"Redis哨兵模式是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Redis哨兵模式是什么"吧!哨兵模式1. 哨兵概念在一主多
千家信息网最后更新 2026年10月31日Redis哨兵模式是什么

这篇文章主要讲解了"Redis哨兵模式是什么",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Redis哨兵模式是什么"吧!

哨兵模式

1. 哨兵概念

  • 在一主多从结构中,如果master宕机了,就需要从多个slave中选出一个作为新的master,要想完成这样的功能,就需要使用Redis的哨兵机制

  • 哨兵 (sentinel) 是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票机制选择新的master并将所有slave连接到新的master,如下图所示:

2. 哨兵作用

  • 监控:监控master和slave

    • 不断的检查master和slave是否正常运行

    • master存活检测、master与slave运行情况检测

  • 通知(提醒):当被监控的服务器出现问题时,向其他哨兵、Redis服务器发送通知

  • 故障转移:断开宕机的master与slave的连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服务器地址

注意:哨兵也是一台redis服务器,仅提供监控服务,不提供数据管理服务;通常哨兵的数量配置为单数(方便投票)

3. 启用哨兵

  • 修改哨兵的配置文件 sentinel.conf ,配置文件位于Redis目录下,如下图所示:

  • 部分配置的含义如下图所示:

  • 启动哨兵

    redis-sentinel filename #filename指的是配置文件名#每个哨兵都要配置自己的配置文件
  • 配置并启动哨兵之后,主服务器宕机之后,会自动的执行投票、主从切换等过程

4. 哨兵原理

哨兵在进行主从切换过程中经历三个阶段:

  • 监控

  • 通知

  • 故障转移

4.1 监控

用于同步各个节点的状态信息,这些节点包括master、slave、哨兵,也就是整个系统所有服务器的信息。

主要完成的功能:

  • 获取各个sentinel的状态(是否在线):新添加的哨兵要与系统中已经存在的哨兵进行信息的交互

  • 获取master的状态(通过info指令)

    • 获取的内容如下

      1. master属性         runid         role:master2. 各个slave在master中保存的基本信息
  • 获取所有slave的状态(根据master中slave的信息向所有的slave发送info指令)

    • 获取的内容如下

      slave属性        runid        role:slave        master_host、master_port        offset

具体的内部工作原理如下所述:

  • 哨兵1向master发送info指令之后,会建立一个cmd连接,创建的连接是用来发送命令的

  • 创建好cmd连接之后,会在哨兵1这一端保存目前他所获得的所有信息,另一端master也会保存自己持有的信息

  • 然后哨兵1根据从master获取的关于salve的信息,向slave发送info指令,得到salve的信息,丰富这一端所保存的信息

  • 当新增一个新的哨兵2时,哨兵2向master发送info指令,建立cmd连接,根据master中的信息可以得到之前已经存在的哨兵1,在自己这一端保存已经获得的信息。然后判断哨兵1是否在线,与哨兵1建立连接,二者互相交换各自的信息,并且双方会持续的ping,保证他们之间是畅通的

  • 哨兵2根据从master获得的slave信息,再从slave获取信息,丰富自己所保存的信息

  • 再新增一个哨兵3时,与之前的过程类似,最终三个哨兵建立起了关系网

  • 关系网中三者会互相交换、发送信息,关系网中的这种工作模式称为发布订阅模式

4.2 通知

哨兵在通知阶段要不断的去获取master与slave的信息,然后将获得的信息在各个哨兵之间进行共享。

具体的流程如下:

哨兵通过建立的cmd连接,向master、slave发送 hello 指令,得到他们的信息,然后在关系网中共享:

4.3 故障转移

断开宕机的master与slave的连接,选取一个slave作为master,将其他slave连接新的master,并告知客户端新的服务器地址。

具体的流程如下所述:

  • 哨兵1始终得不到master的回应,主观判断master宕机,标记 sdown(仅有一个哨兵认为master宕机)

  • 哨兵1在关系网中传递消息,向其他哨兵发送图中左上角的消息

  • 其他哨兵得到消息之后,全部向master发送消息,确定master是否宕机,他们也会将自己得到的结果发送给关系网中的其他哨兵,确定master宕机后,将标记改为 odown(所有哨兵探测之后,超过一半的哨兵认为master宕机)

  • 当认定master宕机之后,此时需要选举新的master,由哪个哨兵完成这件事要通过哨兵之间的选举决定,具体过程如下所述:

    • 在选举的时候每个哨兵手里都有一票,每个哨兵都会发出一个指令,在内网里边告诉其他哨兵自己当选举人,比如说sentinel1和sentinel2发出这个选举指令,那么sentinel3接收到他们的申请之后,sentinel3就会把自己的一票投给其中一方,根据到达的先后顺序投票,获得票的那一方就会多一张选举票,按照这样的一种形式,最终会有一个选举结果,获得票数最多的哨兵会被获选

    • 在这个过程中有可能会存在失败的现象,比如第一轮没有选举成功,那就会接着进行第二轮第三轮直到完成选举

  • 当完成哨兵之间的选举之后,接下来就要由选举胜出的哨兵去slave中挑选一个,将其变成新的master,具体的流程如下所述:

    • 不在线的OUT

    • 响应慢的OUT

    • 与原master断开时间久的OUT

    • 排除结束,开始进行选择

    • 优先级高的获选

    • offset较大的获选(比较大说明同步原来master的数据最多)

    • 若还没有选出,则最后根据runid选出

    • 哨兵在服务器列表中挑选备选master的原则:先排除,后选择

  • 选出新的master之后,哨兵发送指令给服务器:

    • 向新的master发送 slaveof no one 指令

    • 向其他slave发送 slaveof 新masterIP端口 指令

  • 同时还要告诉其他的哨兵新master是谁

感谢各位的阅读,以上就是"Redis哨兵模式是什么"的内容了,经过本文的学习后,相信大家对Redis哨兵模式是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

哨兵 信息 服务 指令 服务器 选举 配置 模式 监控 关系网 过程 一端 之间 内容 故障 文件 消息 状态 选出 投票 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 什么是科技互联网 互联网科技产业 西安纸贵互联网科技有限公司 互联网品科技 互联网巨头反垄断金融科技 互联网下的科技发展 互联网络科技有限公司 大白互联网科技 互联网之后的科技是什么 团飞科技与伯堂互联网服务平台 南平创想时代互联网科技有限公司 荆州市昕露互联网络科技有限公司 杭州壁岐互联网科技有限公司 坤平互联网科技 开一家科技互联网公司需要多少钱 互联网保险科技创业 华夏恒生科技与互联网科技 智帮互联网科技公司最近动向 下一代互联网重大应用科技园 福建互联网展示科技馆设计 深圳市运趣互联网科技有限公司 互联网科技公司需要的职位 深圳国际航运科技和互联网 互联网经济与金融科技 用友工业互联网科技发展 兰石爱特工业互联网科技分公司 北京互联网科技类企业分布 互联网的科技体现在哪里 网互联网络科技 科技互联网企业在行动
0