释放 Jedis 池

releasing Jedis pool

在大多数示例中,包括 this Jedis 示例,Jedis 池是在 try..catch 括号中创建的,我认为它是这样处理的:

try(Jedis jedis = jedisPool.getResource())
{
    some code
}

对我来说这是不可能的,因为我需要在仍然使用 Jedis 池的同时抛出错误,具体取决于 Redis 的结果。所以对我来说这只是

Jedis jedis = jedisPool.getResource()

问题是如何最好地处置对象?是jedis.disconnect吗? jedis.quit?绝地武士 = null?

有一些类似的问题,但不完全相同。 One about error it gives, another about increasing pool, 关于线程。

简直jedis.close()。参见 Jedis - When to use returnBrokenResource()

您过去应该使用 jedisPool.returnBrokenResource(jedis)jedisPool.returnResource(jedis),但 jedis.close() 会处理它。

参见 Jedis.java

Jedis jedis = null;
try {
    jedis = jedisPool.getResource();

...
}catch (JedisConnectionException e) {
...
}catch (Exception e){
...
} finally {
    if (jedis != null)
        jedis.close();
}