2014-04-03 51 views
2

你好我調試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?它是如何爲你工作的?你的配置是什麼?

此外,沒有人認識到上述問題。如何避免/修復它們?

謝謝 彼得

回答

3

這裏有一個更新:

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控制檯我能夠看到連接數量逐漸增加,直到服務器重啓爲止

相關問題