我们在应用程序中使用redis进行缓存。
我们的目标是在池大小耗尽或超过某个阈值时创建新的Redis连接,以便我们可以将空闲连接数保持最小。这样,redis-server资源就会分配给真正需要它的应用程序服务器。
在我们的java应用程序中,我们使用spring的spring-data-redis 1.4.2的Spring JedisConnectionFactory,它在内部使用Jedis 2.6.2和commons-pool 2.0。
最新版本的GenericObjectPool没有动态增长池大小的选项。 (早期版本的commons-pool有whenExhaustAction选项)
我也找不到在Jedis中传递自定义对象池的方法。
请建议我们如何实现这一目标。是否有其他Redis-Client对此有支持?
答案 0 :(得分:1)
如果将maxTotal
属性设置为负值,则池中的实例数不受限制。您可以将其与maxIdle
设置结合使用,以确保在任何给定时间都没有超过maxIdle
个空闲连接。