Spring Boot Starter连接Bitnami Redis集群遇认证错误求助
问题原因及解决方案
这个错误的核心原因是Redis 6+版本引入的RESP3协议与客户端认证顺序不匹配:
Redis 6及以上版本新增了HELLO命令用于协商RESP协议版本,但你的Redis集群开启了密码认证,未完成认证的客户端直接发送HELLO命令就会触发这个报错。而旧版本的spring-boot-starter-data-redis(尤其是配套的Lettuce/Jedis客户端)在连接Redis集群时,会先发送HELLO命令再执行认证,顺序不符合Redis集群的要求。
解决办法:
升级Spring Boot版本
直接升级到Spring Boot 2.7.x及以上版本,对应的Spring Data Redis和客户端驱动(默认是Lettuce)已经修复了这个认证顺序问题,会在HELLO命令中附带认证信息,无需额外配置。指定RESP2协议版本(不升级时的临时方案)
如果暂时无法升级版本,可以强制客户端使用RESP2协议,绕过HELLO命令的认证问题:
针对默认的Lettuce客户端,添加以下配置:spring.redis.lettuce.protocol-version=RESP2如果你使用Jedis客户端,确保Jedis版本在3.7.0及以上,或者通过自定义配置类强制使用RESP2。
确认集群密码一致性
虽然你用redis-cli能连接,但要确认Redis集群的所有节点都配置了相同的密码TEST,避免部分节点认证逻辑不一致。
内容的提问来源于stack exchange,提问作者user3908406
相关产品推荐
相关产品推荐

