2014-02-06 24 views
1

我正在幫助維護一個使用Jedis連接到Sharded Redis的應用程序。Sharded Jedis - 何時應該調用pool.destroy()?

我正在使用的應用程序保持ShardedJedisPool的實例在服務,以保持其重用多個請求。

reviewing the docs on Sharded Jedisnoticed the following comment

忘記pool.destroy保持連接打開,直到超時 達到。

我們的應用程序不撥打電話pool.destroy()任何地方。我們是否應該在每次請求時撥打pool.destroy()?我想,每個請求都創建一個新的池?或者我的泳池可以在我服務的一生中保持活力,並且只能撥打pool.destroy()中的敲定方法的服務?

回答

2

ShardedJedisPoolJedisPool都只能在應用程序的整個生命週期內創建一次。並且在應用程序關閉時銷燬它們。 ShardedJedisPoolJedisPool都是線程安全的,意味着跨線程使用同一實例是安全的(在您的情況下請求)並獲取ShardedJedisJedis的實例。在使用ShardedJedis或Jedis之後,您應該將它們返回到池中,否則池會耗盡(取決於您如何配置它)。

+0

如何將此答案應用於使用Spring的Web應用程序?在這種情況下應該在哪裏調用pool.destroy()? – nsdiv

相關問題