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>
加油,愿被这世界温柔以待 ^_^