将 JedisPoolConfig testOnBorrow 设置为 false

Setting JedisPoolConfig testOnBorrow to false

因此,目前在我的 JedisPoolConfig bean 中,我将参数 testOnBorrow 设置为 true。看来这检索资源较慢。

有一个场景,Jedis 花了 30 分钟从 Redis 中检索资源(调用方法 (redis.clients.jedis.BinaryJedis:exists:144 和 java.lang.Thread:sleep)在获得资源或脱离之前多次)。

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

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

  1. "What will setting this parameter do to my app"?
  2. "Is this solution really effective?"
  3. "Is there a better solution to this problem of slow-reading?"

Jedis testOnX 设置只是在某些场景下发送一个 Redis PING 命令。 testOnBorrow 在从池中接收到连接时发送它们。

禁用它将使您使用 Redis 的速度更快,因为您跳过了验证,这意味着 TTL 减少了一个。请注意,您的应用程序应该知道如何处理错误的连接对象,但在启用测试的情况下也是如此,因为连接可以 close/drop 在测试之后和使用之前。

也就是说,30 分钟是永恒的,而且绝对不会因为您发送 PING 请求而发生。 确保您 return 连接到池一旦完成,并确保您的池大小足以满足您的应用程序使用。