Redis如何启动哨兵监控模式_利用redis-sentinel配置文件拉起独立的高可用监控进程

大萱君_9105

大萱君_9105

2026-03-21

457人浏览

原创

Redis哨兵启动失败主因是未指定有效配置文件,且sentinel.conf必须含sentinel monitor指令;主节点名、IP、端口须准确;protected-mode、密码、防火墙及quorum配置均需对齐。

redis如何启动哨兵监控模式_利用redis-sentinel配置文件拉起独立的高可用监控进程

redis-sentinel 启动失败:找不到配置文件或报错 No such file or directory

哨兵进程必须显式指定一个有效的配置文件,不能只执行 redis-sentinel 命令就完事。它不会自动查找 sentinel.conf,也不会读取 Redis 主配置里的哨兵相关设置。

  • 启动前务必确认配置文件存在且路径正确,比如 /etc/redis/sentinel.conf 或当前目录下的 sentinel.conf
  • 如果用相对路径启动(如 redis-sentinel sentinel.conf),确保终端当前工作目录就是配置文件所在目录
  • 常见错误是把 redis.conf 当成哨兵配置直接传给 redis-sentinel,会立即报错 Invalid argument —— 哨兵配置必须包含 sentinel monitor 指令,且不能有 bind、port 等 Redis 服务端专属配置

sentinel monitor 配置写错:主节点名字、IP 或端口不一致导致无法发现主从

哨兵靠 sentinel monitor 这一行识别主库,后续所有自动故障转移都基于这个“名字+地址”对。一旦写错,哨兵连主库都连不上,自然不会监听从库、也不会触发 failover。

  • 是自定义标识符(如 myredis),所有哨兵和客户端必须统一使用这个名字,不能大小写混用或加空格
  • 必须是主库实际可被哨兵访问的 IP(不是 127.0.0.1,除非哨兵和 Redis 在同一台机器且绑定的是本地地址)
  • 是 Redis 主实例监听的端口(如 6379),不是哨兵自己的端口(默认 26379)
  • 配置后务必用 redis-cli -p 26379 sentinel masters 检查是否识别到主节点;如果返回空数组,说明 monitor 行没生效或网络不通

哨兵启动后不监控从库:忘记开启 protected-mode 或 bind 配置冲突

哨兵需要主动连接主库和所有从库获取信息(比如 INFO replication),如果主/从 Redis 实例启用了 protected-mode yes 且未配置 bind 或 requirepass,哨兵将无法建立连接,表现为只有主节点显示在 sentinel masters 中,但从节点列表为空。

  • 要么在 Redis 主/从配置中设 protected-mode no(仅限内网可信环境)
  • 要么明确配置 bind 到具体内网 IP(如 bind 192.168.1.10),并确保哨兵机器能直连该 IP
  • 如果 Redis 启用了密码,必须在哨兵配置里加上 sentinel auth-pass ,否则认证失败,连接被拒
  • 检查哨兵日志中是否有 Connection refused 或 NOAUTH 字样,这是最直接的线索

多个哨兵实例之间无法通信:端口未放开或 quorum 设置不合理

哨兵靠 TCP 端口(默认 26379)互相交换主从状态、投票等信息。如果防火墙拦了这个端口,或者 quorum 值设得比实际在线哨兵数还大,failover 就永远卡住。

  • 确认所有哨兵机器的 26379 端口在防火墙中放行(入站 + 出站),可用 telnet other-sentinel-ip 26379 测试连通性
  • quorum 是触发故障转移所需的最小哨兵同意数,建议设为哨兵总数的半数向上取整(如 3 台哨兵,quorum 设为 2)
  • 不要把 quorum 设为 1 —— 虽然单点能发起 failover,但极易因网络抖动误判主库下线;也不要设为总数(如 3 台设 3),只要一台哨兵宕机,整个高可用就失效
  • 用 redis-cli -p 26379 sentinel sentinels 查看其他哨兵是否被当前哨兵识别,返回空说明发现机制没跑起来

哨兵模式真正难的不是启动,而是让每个组件——Redis 主从、哨兵自身、网络策略、配置命名——全部对齐。少一个环节,看起来“跑起来了”,其实只是静默失效。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
mysql标识符无效错误怎么解决
mysql标识符无效错误怎么解决

mysql标识符无效错误的解决办法:1、检查标识符是否被其他表或数据库使用;2、检查标识符是否包含特殊字符;3、使用引号包裹标识符;4、使用反引号包裹标识符;5、检查MySQL的配置文件等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.04

17500

5

Python标识符有哪些
Python标识符有哪些

Python标识符有变量标识符、函数标识符、类标识符、模块标识符、下划线开头的标识符、双下划线开头、双下划线结尾的标识符、整型标识符、浮点型标识符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.02.23

1243

5

java标识符合集
java标识符合集

本专题整合了java标识符相关内容,想了解更多详细内容,请阅读下面的文章。

2025.06.11

9430

9

c++标识符介绍
c++标识符介绍

本专题整合了c++标识符相关内容,阅读专题下面的文章了解更多详细内容。

2025.08.07

3762

7

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.02

4889

19

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.14

4455

11

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.02

8612

6

redis怎么做缓存服务器
redis怎么做缓存服务器

redis 作为缓存服务器的答案:redis 是一款开源、高性能、分布式的键值存储,可作为缓存服务器使用。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

663

6

redis怎么解决数据一致性
redis怎么解决数据一致性

redis 提供了两种一致性模型,以维护副本数据一致性:强一致性 (sync) 确保写操作仅在复制到所有从节点后才完成;最终一致性 (async) 则在主节点上写操作后认为已完成,牺牲一致性换取性能。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.04.07

776

6

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.3万人学习