客户端连上 Redis 后执行命令被拒绝,提示需要认证,配置里明明写了密码。日志里能对上时间点,这种反而好排。
服务端启用了密码但客户端未发送,或客户端发的是旧密码,也可能是主从密码不一致。这一点先确认清楚,后面就不用反复试。
CONFIG GET requirepass AUTH yourpassword PING # 客户端 redis-cli -a yourpassword ping
这次卡住的地方就在「Redis 认证失败」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。先做最小复现,能稳定跑出来的问题,排查成本会低一个数量级。
别只看报错的最后一行,往上看几行,真正的起因通常在上面。同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。
把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
处理上按这个顺序:确认服务端 requirepass 与客户端一致;连接后先认证再执行命令;集群环境逐节点核对。
结果对不对很好判断,客户端认证后能正常读写,应用日志不再出现认证错误。