如何解決Lettuce 6.x版本客戶端鑒權錯誤問題?
更新時間 2024-01-02 14:00:44
最近更新時間: 2024-01-02 14:00:44
分享文章
本文介紹解決Lettuce 6.x版本客戶端鑒權錯誤問題
使用Lettuce 6.x版本客戶端,連接redis 2.8/4.0/5.0集群實例時,會報錯"NOAUTH Authentication required"。
原因是Lettuce 6.x版本開始,使用RESP3(Redis 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());
????}
}