¿Qué puedo hacer si un cliente de Lettuce 6.x es incompatible con mi instancia de DCS?
Síntomas
Cuando un cliente de Lettuce 6.x se conecta a una instancia de Clúster Proxy DCS Redis 4.x/5.x, se muestra el mensaje de error "NOAUTH Authentication required".
Análisis
En Lettuce 6.x y las versiones posteriores, el comando HELLO de RESP3 (introducido en Redis 6.x) se utiliza para determinar la adaptación de la versión. Las instancias de las versiones anteriores que no admiten el comando HELLO pueden tener los problemas de compatibilidad. Para estos casos, puede especificar el modo RESP2 (compatible con las versiones 4 y 5 de Redis) en Lettuce.
Solución
Agregue el siguiente código para usar el protocolo RESP2 para acceder a Redis:
package com.chinaroad.parking.config; 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; @Configuration public class SpringConfig implements LettuceClientConfigurationBuilderCustomizer { @Override public void customize(LettuceClientConfiguration.LettuceClientConfigurationBuilder clientConfigurationBuilder) { // manually specifying RESP2 clientConfigurationBuilder.clientOptions(ClientOptions.builder() .protocolVersion(ProtocolVersion.RESP2) .build()); } }