无法使用Jedis Lib在本地连接到aws上的ElasticCache群集

时间:2017-05-16 14:20:14

标签: java redis local nat jedis

我们正在尝试使用使用Jedis lib在本地运行的Java客户端访问aws上的de ElasticCache(Redis)。我们能够按照here步骤在本地使用redis-cli访问redis。

问题是当我们尝试使用Jedis lib连接到aws Redis时,NAT公共地址被转换为redis私有IP以便计算插槽(initializeSlotsCache)。我们找不到禁用此功能的方法。有没有解决方法?

以下是我们使用Jedis进行连接的方式:

    factory = new JedisConnectionFactory(new RedisClusterConfiguration(this.clusterProperties.getNodes()));
    factory.setUsePool(true);
    factory.setPoolConfig(this.jedisPoolConfig());
    factory.afterPropertiesSet();
    return factory;

我们正在为每个节点使用映射的NAT ips。但是Jedis lib正在将私有ips保存在缓存中,因此我们得到以下异常:

redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool

任何建议都会很棒!我们的选择已经不多了。提前谢谢。

1 个答案:

答案 0 :(得分:0)

您无法从AWS环境外部连接到AWS托管的redis。

我们遇到了类似的问题,我们的工作是为开发和单元测试安装本地redis实例。