无法连接到Redis;嵌套的异常是使用RedisTempalte的io.lettuce.core.RedisConnectionException

问题描述

我得到无法连接到Redis;尝试从Spring响应式应用程序连接Azure Redis缓存时,嵌套异常是使用RedisTempalte的io.lettuce.core.RedisConnectionException 错误。

我已经在属性文件中进行了以下配置

spring.redis.host=hostName         
spring.redis.port=6379  
spring.redis.password=password

还使用LettuceConnectionFactory尝试了基于Java的配置

解决方法

由于未在Redis客户端中使用SSL,因此在AWS ElastiCache中启用密码身份验证时遇到了相同的问题。

同一个RedisConfig.java使用SSL进行连接,我的错误消失了。顺便说一下,我正在使用Spring Reactive。

@Configuration
@ConfigurationProperties(prefix = "spring.redis")
@Setter
public class RedisConfig {

    private String host;
    private String password;

    @Bean
    @Primary
    public ReactiveRedisConnectionFactory reactiveRedisConnectionFactory(RedisConfiguration defaultRedisConfig) {
        LettuceClientConfiguration clientConfig = LettuceClientConfiguration.builder()
                .useSsl().and()
                .commandTimeout(Duration.ofMillis(60000)).build();
        return new LettuceConnectionFactory(defaultRedisConfig,clientConfig);
    }

    @Bean
    public RedisConfiguration defaultRedisConfig() {
        RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
        config.setHostName(host);
        config.setPassword(RedisPassword.of(password));
        return config;
    }
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...