原文链接: https://www.cnblogs.com/yangkangIT/p/16016279.html

背景

  新项目为了推进多环境(test,pre,prd)部署,在测试环境测试通过之后部署预发环境的时候,服务一直报错,提示【io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.】,这个提示一般情况下的意思是:redis服务配置了密码,客户端链接的时候没有填写密码。但是代码和测试环境同一套的,在测试环境都正常测试通过了的。

分析

  先查看了测试环境和预发环境的redis是不是同一个版本的(因为你不知道运维给你的版本会是多少年前的老古董),预发环境是4.1.1的。然后我的springboot的版本是2.4.13的,使用的lettuce是6.0.8的,Lettuce 6.x版本开始,使用RESP3(Redis 6.x引入)的HELLO命令进行版本自适应判断,但是对于不支持HELLO命令的低版本实例,兼容性存在一定问题。所以对于低版本的实例,建议直接在Lettuce中指定使用RESP2协议(兼容Redis 4/5)的版本来使用。

解决方案

  第一种:修改协议

复制代码
 1 import io.lettuce.core.ClientOptions;
 2 import io.lettuce.core.protocol.ProtocolVersion;
 3 import org.springframework.boot.autoconfigure.data.redis.LettuceClientConfigurationBuilderCustomizer;
 4 import org.springframework.context.annotation.Configuration;
 5 import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;
 6 
 7 @Configuration
 8 public class SpringConfig implements LettuceClientConfigurationBuilderCustomizer {
 9 
10     @Override
11     public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {
12         // manually specifying RESP2
13         clientConfigurationBuilder.clientOptions(ClientOptions.builder()
14                 .protocolVersion(ProtocolVersion.RESP2)
15                 .build());
16     }
17 }
复制代码

  第二种:使用低版本的lettuce

复制代码
 1   <dependency>
 2             <groupId>org.springframework.boot</groupId>
 3             <artifactId>spring-boot-starter-data-redis</artifactId>
 4             <exclusions>
 5                 <exclusion>
 6                     <groupId>io.lettuce</groupId>
 7                     <artifactId>lettuce-core</artifactId>
 8                 </exclusion>
 9             </exclusions>
10         </dependency>
11         <dependency>
12             <groupId>io.lettuce</groupId>
13             <artifactId>lettuce-core</artifactId>
14             <version>5.3.7.RELEASE</version>
15             <scope>compile</scope>
16         </dependency>
复制代码

原文地址:http://www.cnblogs.com/fswhq/p/16784828.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性