Caused by: io.lettuce.core.RedisCommandExecutionException: NOAUTH Authentication required.【Springboot 连接 腾讯 redis 认证失败解决】

原文链接 : https://blog.csdn.net/De_Buffer/article/details/132492287

最终解决方法
虽然通过更换连接客户端为jedis解决了问题,但不符合发展趋势,lettuce已成为主流redis客户端,springboot2官方推荐,因此在这个保底方案基础上继续探究。终于!!
找到解决我的问题的一篇文章,跟着他的思路发现确实是lettuce的问题,是和redis版本不兼容。系统中引入的spring-lettuce依赖包版本到6.xx了,而redis服务的版本只有5.xx。官方文档介绍lettuce6.0需要匹配redis6,其中握手协议同时支持resp2/3,6.0以下低版本的redis需要使用resp2。
最终的操作:

import io.lettuce.core.ClientOptions;
import io.lettuce.core.protocol.ProtocolVersion;
import org.springframework.boot.autoconfigure.data.redis.LettuceClientConfigurationBuilderCustomizer;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.lettuce.LettuceClientConfiguration;

/**
 * @description lettuce客户端配置
 * @author 
 */
@Configuration
public class LettuceConfig implements LettuceClientConfigurationBuilderCustomizer {

    @Override
    public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {
        clientConfigurationBuilder.clientOptions(ClientOptions.builder().protocolVersion(ProtocolVersion.RESP2).build());
    }
}

5、还是根据报错信息(从lettuce.core包中抛出的异常)推断问题出在lettuce上面,但具体是啥问题暂不深究:通过修改连接方式为jedis成功连接上redis服务器(排除了pom的lettuce核心包)

<dependency>
  <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
	  <exclusions>
	      <exclusion>
	         <groupId>io.lettuce</groupId>
	         <artifactId>lettuce-core</artifactId>
	      </exclusion>
	  </exclusions>
 </dependency>

posted @   山河已无恙  阅读(2193)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2020-12-08 idea的tomcat消失
点击右上角即可分享
微信分享提示