将JedisPoolConfig testOnBorrow设置为false

Sul*_*eyo 2 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. "对于这种慢读问题,有没有更好的解决方案?"

Ofi*_*zon 6

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

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

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