You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ioredis连接带密码的Redis Sentinel出现NOAUTH错误求助

问题分析与解决方案

从你的日志和配置细节来看,问题的核心非常清晰:你只配置了Sentinel服务的认证密码(sentinelPassword),但你的主Redis节点(192.168.0.23:6379)本身也开启了密码认证,而你没有在ioredis的配置中提供主节点的认证密码。

看日志里的关键片段就能确认这一点:

2020-02-07T18:06:10.106Z ioredis:redis write command[192.168.0.23:6379]: 0 -> info([]) Redis connected
...
Redis error in (/config/redis.js) ReplyError: NOAUTH Authentication required.

当ioredis通过Sentinel成功定位到主节点后,直接发送了info命令,但没有先执行auth操作——因为你没告诉它主节点的密码,所以主节点拒绝了未认证的请求,抛出了NOAUTH错误。

修复方案

在你的ioredis配置中添加password字段,填入主Redis节点的认证密码即可,完整配置示例如下:

new Redis({
  sentinels: [ { host: "192.168.0.35", port: 26379 } ],
  name: "redismaster",
  sentinelPassword: "sentinelPassword", // 用于认证Sentinel服务的密码
  password: "your-master-redis-password", // 主Redis节点的认证密码
  sentinelRetryStrategy: function(times) {
    return Math.max(times * 100, 3000);
  }
});

补充说明

  • sentinelPassword仅用于和Sentinel服务本身的认证,只有当你的Sentinel集群开启了密码验证时才需要配置;
  • password是用于Redis主/从节点的认证,只要你的Redis节点配置了requirepass,就必须填写这个字段;
  • 如果你的主从节点密码不一致,还可以额外配置slavePassword字段单独指定从节点的密码(不过实际场景中通常会保持主从密码一致)。

内容的提问来源于stack exchange,提问作者Yacine BENABDESSELAM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 15:58:12