spring的配置文件:
applicationContext.xml
里面写两个东西:
1.连接池配置 jedisPoolConfig
2.单机连接池 jedisPool
<?xml version=\"1.0\" encoding=\"UTF-8\"?>
<beans xmlns=\"http://www.springframework.org/schema/beans\"
xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:mvc=\"http://www.springframework.org/schema/mvc\"
xmlns:context=\"http://www.springframework.org/schema/context\"
xmlns:aop=\"http://www.springframework.org/schema/aop\" xmlns:tx=\"http://www.springframework.org/schema/tx\"
xsi:schemaLocation=\"http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd \">
<!-- 连接池配置 -->
<bean id=\"jedisPoolConfig\" class=\"redis.clients.jedis.JedisPoolConfig\">
<!-- 最大连接数 -->
<property name=\"maxTotal\" value=\"30\" />
<!-- 最大空闲连接数 -->
<property name=\"maxIdle\" value=\"10\" />
<!-- 每次释放连接的最大数目 -->
<property name=\"numTestsPerEvictionRun\" value=\"1024\" />
<!-- 释放连接的扫描间隔(毫秒) -->
<property name=\"timeBetweenEvictionRunsMillis\" value=\"30000\" />
<!-- 连接最小空闲时间 -->
<property name=\"minEvictableIdleTimeMillis\" value=\"1800000\" />
<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
<property name=\"softMinEvictableIdleTimeMillis\" value=\"10000\" />
<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
<property name=\"maxWaitMillis\" value=\"1500\" />
<!-- 在获取连接的时候检查有效性, 默认false -->
<property name=\"testOnBorrow\" value=\"true\" />
<!-- 在空闲时检查有效性, 默认false -->
<property name=\"testWhileIdle\" value=\"true\" />
<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
<property name=\"blockWhenExhausted\" value=\"false\" />
</bean>
<!-- redis单机 通过连接池 -->
<bean id=\"jedisPool\" class=\"redis.clients.jedis.JedisPool\" destroy-method=\"close\">
<constructor-arg name=\"poolConfig\" ref=\"jedisPoolConfig\"/>
<constructor-arg name=\"host\" value=\"192.168.25.145\"/>
<constructor-arg name=\"port\" value=\"6379\"/>
</bean>
</beans>
Destroy-method=\"close\"作用:
jedis不整合spring需要手动关闭,配置了这个之后不需要手动写了,手动:jedis.close();
jedisPool配置内容:linux端口、端口
private ApplicationContext applicationContext;
@Before
public void init() {
//读取连接池配置
applicationContext = new ClassPathXmlApplicationContext(
\"classpath:applicationContext.xml\");
}
@Test
public void testJedisPool() {
//获取bean中的连接池
JedisPool pool = (JedisPool) applicationContext.getBean(\"jedisPool\");
try {
//获取数据源(个人理解)
Jedis jedis = pool.getResource();
//存放数据(键值对)
jedis.set(\"name\", \"lisi\");
String name = jedis.get(\"name\");
System.out.println(name);
}catch(Exception ex){
ex.printStackTrace();
}finally{
//虽然spring代理了销毁jedis,但是
//为了以防万一还是需要手动写一下代码
if(jedis != null){
//关闭连接
jedis.close();
}
}
}
版权声明
本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。




