Could not get a resource from the pool:jedis连接池满问题

Could not get a resource from the pool:jedis连接池满问题

Scroll Down

Could not get a resource from the pool:redis连接池满问题

在项目使用redis作为中间缓存和工具类的时候,有些时候启动会报jedis连接池满的问题,可能由于请求rabbitmq用到了redisUtils,而请求比较耗时,没有及时释放资源,所以做了如下配置调整,没有在出现过上述问题。
1.调整连接池配置

<bean id="redisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="100" />
		<!--最大活动对象数-->
		<property name="maxTotal" value="1000" />
        <property name="maxWaitMillis" value="3000" />
		<property name="testOnBorrow" value="true" />
		<!--当调用return Object方法时,是否进行有效性检查-->
		<property name="testOnReturn" value="true" />
		<!--“空闲链接”检测线程,检测的周期,毫秒数-->
		<property name="timeBetweenEvictionRunsMillis" value="30000" />
		<!--向调用者输出“链接”对象时,是否检测它的空闲超时-->
		<property name="testWhileIdle" value="true" />
		<!--对于“空闲链接”检测线程而言,每次检测的链接资源的个数-->
		<property name="numTestsPerEvictionRun" value="50" />
		<!--表示一个对象至少停留在idle状态的最短时间,然后才能被idle object evitor扫描并驱逐-->
		<property name="MinEvictableIdleTimeMillis" value="6000" />
	</bean>

2.在封装的redisutils后面都加上下面代码

            RedisConnectionUtils.unbindConnection(redisTemplate.getConnectionFactory());