必须显式配置主从节点、哨兵进程和客户端三方的独立密码,缺一不可;requirepass与masterauth需同时设置且值一致,sentinel auth-pass须按格式严格配置并重启全部组件。

requirepass,不配哨兵的 sentinel auth-pass,故障转移后新主节点会无法被正确接管,客户端连接直接报 NOAUTH Authentication required。
主从节点 requirepass 和 masterauth 必须同时设
主节点只需在 redis.conf 中启用 requirepass your_password;但从节点不仅要设自己的 requirepass,还必须通过 masterauth your_password 告诉自己如何连主库。漏掉 masterauth,从节点启动时就会卡在 SYNC 阶段,日志里反复出现 Master authentication failed。
-
requirepass是从节点对外提供服务时要求客户端输入的密码 -
masterauth是从节点连接主节点时主动提交的密码,两者值必须一致 - 若主从密码不一致,哨兵虽能发现主节点存活,但无法触发有效故障转移——因为切换后新主仍用旧密码,而客户端拿到的密码信息已失效
哨兵节点必须单独配 sentinel auth-pass
sentinel auth-pass 不是全局配置,也不是写一次就生效。每个哨兵进程都只读自己的 sentinel.conf,且该配置仅用于哨兵连接主/从节点时发送 AUTH 命令。常见错误是只改了一个哨兵的配置文件,其余哨兵仍用空密码尝试连接,导致部分哨兵持续报 Failed to AUTH connection to master,最终将主节点标记为 odown。
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
- 格式严格:
sentinel auth-pass mymaster your_password,其中mymaster必须和sentinel monitor中定义的名称完全一致(大小写敏感) - 密码不能含空格、
#、引号等字符,否则哨兵解析失败,启动直接退出 - 主库密码变更后,哨兵不会自动重载该配置——必须重启所有哨兵进程才能生效
客户端连接池必须传入密码参数
Spring Boot 或 Jedis 等客户端不自动继承哨兵配置里的密码。Spring Boot 中哨兵模式下,spring.redis.password 作用于最终连接 Redis 节点,而 spring.redis.sentinel.password 仅用于连接哨兵本身(极少使用)。Jedis 则需在构造 JedisSentinelPool 时显式传入密码参数,否则即使哨兵成功选出新主,客户端仍因未认证被拒绝。
- Jedis 示例:
new JedisSentinelPool("mymaster", sentinels, config, "your_password") - Spring Boot 示例:单机用
spring.redis.password,哨兵模式同样用它,不是spring.redis.cluster.password - 若哨兵节点自己也配了
requirepass(不推荐),则连哨兵要用redis-cli -p 26379 -a xxx,但这和sentinel auth-pass完全无关
配置生效必须重启全部组件
Redis 主从、哨兵、客户端三者之间没有热重载机制。修改 requirepass 或 sentinel auth-pass 后,必须依次重启:先停从节点,再停主节点,最后停所有哨兵;然后按相反顺序启动:主节点 → 从节点 → 哨兵。跳过任意一环,都会出现连接错乱或认证失败。
- 重启顺序影响状态同步:主节点必须最先起来,否则哨兵初始化时无法获取
INFO replication,会误判集群状态 - 哨兵启动后会自动执行
CONFIG REWRITE更新主从配置,但前提是它已有合法 AUTH 权限;否则该操作被拒绝,新主节点的密码配置可能丢失 - 验证是否生效:连任一哨兵执行
SENTINEL MASTER mymaster,检查返回中auth-pass字段是否为预期值










