4

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

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

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

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

  1. “设置此参数对我的应用程序有什么影响”?
  2. “这个方案真的有效吗?”
  3. “这个阅读慢的问题有没有更好的解决方案?”
4

1 回答 1

12

JedistestOnX设置只是在某些场景下发送 Redis PING 命令。testOnBorrow当接收到来自池的连接时发送它们。

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

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

于 2016-05-10T11:22:58.763 回答