【问题标题】:Connection issue with AWS Redis cluster from Spring Boot AppSpring Boot App 与 AWS Redis 集群的连接问题
【发布时间】:2016-12-05 15:06:30
【问题描述】:

我正在尝试使用 spring-data-redis 将 AWS elasticache redis 与 spring boot 应用程序集成。使用服务时遇到异常。

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool 
org.springframework.data.redis.connection.jedis.JedisConnectionFactory.fetchJedisConnector(JedisConnectionFactory.java:191)

... 84 more

Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused
at redis.clients.jedis.Connection.connect(Connection.java:164)

使用下面的代码

@Bean
public RedisConnectionFactory jedisConnectionFactory(JedisPoolConfig jedisPoolConfig) {
    JedisConnectionFactory redisConnectionFactory = new JedisConnectionFactory(jedisPoolConfig);
    redisConnectionFactory.setHostName("AWS primary replication group endpoint");
    redisConnectionFactory.setPort(6379);
    redisConnectionFactory.setUsePool(true);
    redisConnectionFactory.setTimeout(3600);
    return redisConnectionFactory;
}

我能够从部署服务的 EC2 实例连接到 AWS Redis。任何示例代码或步骤都会很有帮助。

【问题讨论】:

  • 使用redis-cli能成功连接服务器吗?
  • 是的,我可以从 redis-cli 连接

标签: amazon-elasticache spring-data-redis


【解决方案1】:

参加这个聚会可能会迟到,但根据我的经验,在 application.ymlapplication.properties 或在命令行中将 spring.redis.host 声明为 -D 参数在 RedisAutoConfiguration 内不被 RedisProperties 尊重.

最终对我有用的是导出一个环境变量,就像这样

export SPRING_REDIS_HOST=...

在启动尝试连接到 ElastiCache 的服务之前。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-14
    • 2020-04-04
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2019-09-12
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多