我们正在尝试使用使用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
任何建议都会很棒!我们的选择已经不多了。提前谢谢。
答案 0 :(得分:0)
您无法从AWS环境外部连接到AWS托管的redis。
我们遇到了类似的问题,我们的工作是为开发和单元测试安装本地redis实例。