如何释放由RedisClientPool分配的RedisScala客户端?
我使用debasishg/scala redis作为我的redis客户端。 我希望它支持多线程执行。遵循他们的文档:我定义了如何释放由RedisClientPool分配的RedisScala客户端?,scala,Scala,我使用debasishg/scala redis作为我的redis客户端。 我希望它支持多线程执行。遵循他们的文档:我定义了 val clients = new RedisClientPool("localhost", 6379) 然后在每次访问redis时使用它: clients.withClient { client => { ... } } 我的问题是,我是否需要释放每个分配的客户端?如果是的话,正确的方法是什么 如果查看构造函数的,则会有一个默认值maxIdl
val clients = new RedisClientPool("localhost", 6379)
然后在每次访问redis时使用它:
clients.withClient {
client => {
...
}
}
我的问题是,我是否需要释放每个分配的客户端?如果是的话,正确的方法是什么 如果查看构造函数的,则会有一个默认值
maxIdle
(“池中可以空闲的最大对象数”,根据),以及poolWaitTimeout
的默认值。您可以更改这些值,但基本上,如果您等待poolWaitTimeout
,则可以保证清理您的Resources,备用的maxIdle
客户端除外
另外,如果您无法忍受空闲客户端的想法,您可以使用mypool关闭整个池。关闭,并在需要时重新创建它,但这取决于您的用例,这可能会违背使用池的目的(如果是cron作业,我想这很好)。如果您查看构造函数,有一个默认值
maxIdle
(“池中可以空闲的最大对象数”,根据),还有一个poolWaitTimeout
的默认值。您可以更改这些值,但基本上,如果您等待poolWaitTimeout
,则可以保证清理您的Resources,备用的maxIdle
客户端除外
此外,如果您无法忍受空闲客户端的想法,您可以使用mypool.close
,关闭整个池,并在需要时重新创建它,但这取决于您的用例,这可能会破坏使用池的目的(如果是cron作业,我想这很好)