Jedis块永远让连接到Amazon
问题描述:
你好我调试Jedis交谈亚马逊Elasticache的Redis 2.6.13Jedis块永远让连接到Amazon
我有Jedis暂时无法获取连接的麻烦。目前,我正在使用所有默认值,并且我看到,当我尝试获得连接时,它总是永远阻止。即此呼叫块
Jedis jedis = jedisPool.getResource();
但是,如果我单独离开服务器一段时间,它似乎再次工作。这表明Jedis正在使用某些东西,并最终以较低的等级进行清理。
我相信我有一些问题,我的配置,但它在我的笔记本电脑正常工作与Redis的(2.6.10)
我发现了一个博客从2011年谈到有关配置,这有一个非常有趣的句子中间
http://biasedbit.com/redis-jedispool-configuration/
"The annoyance here is that in a JedisPool by default, connections will die of inactivity and no new ones will be spawned."
我也看到了问题,指出Jedis有时会每次创建一个新的连接,并且不重用现有的连接。例如
https://groups.google.com/forum/#!topic/jedis_redis/H3FhLtwkDo8
是否有人使用Jedis和Amazon Elasticache?它是如何为你工作的?你的配置是什么?
此外,没有人认识到上述问题。如何避免/修复它们?
谢谢 彼得
答
这里有一个更新:
JedisConfig有maxTotal和了maxidle调整参数
JedisPoolConfig poolConfig = new JedisPoolConfig();
// default 8 : Maximum active connections to Redis instance
poolConfig.setMaxTotal(maxTotal);
// default 8 : Maximum number of idle connections to Redis
poolConfig.setMaxIdle(maxIdle);
Jedis显然是贪婪,将创建多个连接,甚至当它不必。
我将max设置为100,并运行3台服务器。
不幸的是,Amazon Redis实例似乎只有128个可用连接,所以我的服务器互相挨饿。
使用Amazon Elasticache控制台我能够看到连接数量逐渐增加,直到服务器重启为止