我正在帮助维护一个使用Jedis连接到Sharded Redis的应用程序。
我正在使用的应用程序在服务中保留了 ShardedJedisPool 的实例,以在多个请求中继续重用它。
我是reviewing the docs on Sharded Jedis和noticed the following comment:
我们的应用没有在任何地方调用 pool.destroy()。我们是否应该在每个请求上调用 pool.destroy()?而且我猜想,还要为每个请求创建一个新池吗?还是我的池可以在我的服务生命周期内保持生命,仅调用中的 pool.destroy()来确定服务的方法?
最佳答案
ShardedJedisPool
和JedisPool
都只能在应用程序的整个生命周期内创建一次。然后在应用程序关闭时销毁它们。ShardedJedisPool
和JedisPool
都是线程安全的,这意味着跨线程(在您的情况下为请求)使用同一实例并获得ShardedJedis
或Jedis
的实例是安全的。使用ShardedJedis或Jedis之后,应将它们返回到池中,否则池将耗尽(取决于配置方式)。
关于java - Sharded Jedis-我什么时候应该调用pool.destroy()?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21613811/