所以redis gem应该是线程安全的,这很好。但我想知道我需要如何设置它。我正在使用 jRuby 和赛璐珞(使用默认纤维)。
我现在使用它的方式是定义了一个全局方法:
def redis
@_redis ||= Redis.new(...)
end
我将 Redis 客户端的超时参数设置为 30。我认为不会出现任何线程安全问题(我确实在生成线程之前对其进行了初始化),但是有时我开始收到Redis::TimeoutError错误,所以我想知道这些线程是否可能永远保持打开的连接并最终占用所有可用的连接?
基本上问题是有时我会得到 Redis::TimeoutError。有没有办法可以检查在某个时刻打开了哪些连接?或者知道问题可能是什么?
谢谢