哨兵与主从节点密码必须完全一致,即sentinel auth-pass、requirepass和masterauth三者相同;主从节点均需同时配置requirepass和masterauth;哨兵配置中仅设sentinel auth-pass,不可设requirepass;验证需通过redis-cli连主、从、哨兵三端测试。

哨兵和主从节点必须用同一套密码
不能“分设”哨兵与主从节点密码——sentinel auth-pass 配置的密码,必须和主从节点的 requirepass(客户端连接密码)以及 masterauth(从节点连主时用的认证密码)完全一致。所谓“分设”,实际是常见误解,会导致哨兵反复报 NOAUTH Authentication required 或 WRONGPASS invalid username-password pair,最终判定主节点主观下线。
主从节点密码配置缺一不可
主从节点都要同时设置两个密码项,漏掉任意一个都会中断同步或哨兵通信:
-
requirepass your_password:本节点接受客户端连接时校验的密码 -
masterauth your_password:本节点作为从节点时,连接上游主节点所用的密码(主节点自己也要配这个,否则故障恢复后无法重新同步)
特别注意:即使主节点不打算做从节点,也必须配 masterauth。因为哨兵故障转移后,原主可能降级为从,此时若没配 masterauth,它将无法向新主发起同步请求,数据停滞。
哨兵配置里只写 sentinel auth-pass,不设 requirepass
哨兵进程本身不接受客户端连接(除非你显式用 redis-cli -p 26379 --sentinel 连哨兵端口),所以 sentinel.conf 中不需要、也不应该加 requirepass。唯一要配的是:
Redis 缓存和数据结构管理技能。通过自然语言操作 Redis,支持 String、Hash、List、Set、ZSet、Stream 等数据结构操作。当用户提到 Redis、缓存、消息队列、会话存储时使用此技能。
-
sentinel auth-pass mymaster your_password:告诉哨兵,用这个密码去连名为mymaster的主节点及其所有从节点
如果哨兵配置了 requirepass,反而会干扰其与 Redis 实例的通信逻辑,甚至导致 SENTINEL get-master-addr-by-name 返回空。
验证密码是否真正一致的三步检查法
遇到连接失败,别只看配置文件文字,直接用命令验证:
- 连主节点:
redis-cli -h master_ip -p 6379 -a your_password ping→ 应返回PONG - 连从节点:
redis-cli -h slave_ip -p 6379 -a your_password info replication→ 查看master_link_status:up - 连哨兵:
redis-cli -p 26379 -a your_password sentinel get-master-addr-by-name mymaster→ 应返回主节点 IP 和端口
任一环节失败,就说明对应节点的密码没对上。最容易被忽略的是:Docker 容器内修改了配置但没重启容器,或 systemd 服务 reload 未生效,配置仍跑在旧内存中。










