分布式缓存Redis

如何解决Lettuce 6.x版本客户端鉴权错误问题?

2024-05-22 09:11:39

使用Lettuce 6.x版本客户端,连接redis 2.8/4.0/5.0集群实例时,会报错"NOAUTH Authentication required"

原因是Lettuce 6.x版本开始,使用RESP3Redis 6.x引入)的HELLO命令进行版本自适应判断,但是对于不支持HELLO命令的低版本实例,兼容性存在一定问题。所以对于低版本的实例,建议直接在Lettuce中指定使用RESP2协议(兼容Redis 4/5)的版本来使用。

在客户端连接代码添加指定RESP2协议访问Redis即可解决:

 

@Configuration

public class SpringConfig implements LettuceClientConfigurationBuilderCustomizer {

    @Override

    public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) {

        // manually specifying RESP2

        clientConfigurationBuilder.clientOptions(ClientOptions.builder()

                .protocolVersion(ProtocolVersion.RESP2)

                .build());

    }

}



99xOims1ZGoy