spring配置jedispool会自动回收吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring配置jedispool会自动回收吗相关的知识,希望对你有一定的参考价值。
1.引入jedis的jar包<!-- redis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.7.3</version>
</dependency>
2.在spring配置文件中添加配置
<!-- POOL配置 -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxTotal" value="50" />
<property name="maxIdle" value="10" />
<property name="maxWaitMillis" value="1000" />
<property name="testOnBorrow" value="true" />
</bean>
<!-- jedis shard信息配置 -->
<bean id="jedisShardInfo" class="redis.clients.jedis.JedisShardInfo">
<constructor-arg index="0" value="192.168.1.101" />
<constructor-arg index="1" value="6379" type="int" />
</bean>
<!-- jedis shard pool配置 -->
<bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">
<constructor-arg index="0" ref="jedisPoolConfig" />
<constructor-arg index="1">
<list>
<ref bean="jedisShardInfo" />
</list>
</constructor-arg>
</bean>
经过以上两个步骤,即可完成配置
3. 测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value="/spring/applicationContext.xml", "/spring/redis.xml")
public class RedisTest
@Autowired
private ShardedJedisPool shardedJedisPool;
@Test
public void testSet()
ShardedJedis jedis = shardedJedisPool.getResource();
jedis.set("name", "wwss");
@Test
public void testGet()
ShardedJedis jedis = shardedJedisPool.getResource();
String name = jedis.get("name");
System.out.println(name);
参考技术A 如果不封装到redisTemplate,2.4.2之前的版本需要手动回收,2.5以后自动回收
如果封装到redisTemplate,则redisTemplate会管理jedis连接,也就是会在使用redisTemplate操作redis之后释放jedis连接
JedisPool配置详解
使用jedis连接池的时候,我们一般会引用 JedisPoolConfig这个类的配置。下面是JedisPoolConfig的继承图
在BaseObjectPoolConfig这个类下面,有如下配置字段:
以上是关于spring配置jedispool会自动回收吗的主要内容,如果未能解决你的问题,请参考以下文章