将JedisPoolConfig testOnBorrow设置为false

时间:2016-05-09 15:20:34

标签: java redis jedis spring-data-redis

所以,目前在我的JedisPoolConfig bean中,我将参数testOnBorrow设置为true。看起来这种检索资源的速度较慢。

有一种情况,Jedis花了30分钟从Redis中检索资源(多次调用方法(redis.clients.jedis.BinaryJedis:exists:144和java.lang.Thread:sleep)获取资源或离开)。

我认为我可以做的是将参数testOnBorrow设置为false,以防止在读取资源之前对Redis进行PING调用。

所以,我的问题(我真的希望得到答案)是:

  1. “将此参数设置为我的应用程序的内容”?
  2. “这个解决方案真的有效吗?”
  3. “这个慢读的问题有更好的解决方案吗?”

1 个答案:

答案 0 :(得分:6)

Jedis testOnX设置只是在某些情况下发送Redis PING命令。 testOnBorrow在从池中接收连接时发送它们。

禁用它将使您更快地使用Redis,因为您跳过验证意味着减少一个TTL。请注意,您的应用应该知道如何处理错误的连接对象,但是在启用测试时也是如此,因为连接可以在测试之后和使用之前关闭/删除。

那就是说,30分钟是永恒的,绝大多数都没有发生,因为你发送了一个PING请求。 确保在完成后将连接返回到池中,并确保池大小足以满足应用程序的使用。