单机版:
配置spring配置文件applicationContext.xml
<?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>
测试:
1 private ApplicationContext applicationContext;
2
3 @Before
4 public void init() {
5 applicationContext = new ClassPathXmlApplicationContext(
6 "classpath:applicationContext.xml");
7 }
8
9 @Test
10 public void testJedisPool() {
11 JedisPool pool = (JedisPool) applicationContext.getBean("jedisPool");
12 try {
13 jedis = pool.getResource();
14
15 jedis.set("name", "lisi");
16 String name = jedis.get("name");
17 System.out.println(name);
18 }catch(Exception ex){
19 ex.printStackTrace();
20 }finally{
21 if(jedis != null){
22 //关闭连接
23 jedis.close();
24 }
25 }
26 }
集群版:
配置spring配置文件applicationContext.xml
1 <!-- 连接池配置 --> 2 <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"> 3 <!-- 最大连接数 --> 4 <property name="maxTotal" value="30" /> 5 <!-- 最大空闲连接数 --> 6 <property name="maxIdle" value="10" /> 7 <!-- 每次释放连接的最大数目 --> 8 <property name="numTestsPerEvictionRun" value="1024" /> 9 <!-- 释放连接的扫描间隔(毫秒) --> 10 <property name="timeBetweenEvictionRunsMillis" value="30000" /> 11 <!-- 连接最小空闲时间 --> 12 <property name="minEvictableIdleTimeMillis" value="1800000" /> 13 <!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 --> 14 <property name="softMinEvictableIdleTimeMillis" value="10000" /> 15 <!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 --> 16 <property name="maxWaitMillis" value="1500" /> 17 <!-- 在获取连接的时候检查有效性, 默认false --> 18 <property name="testOnBorrow" value="true" /> 19 <!-- 在空闲时检查有效性, 默认false --> 20 <property name="testWhileIdle" value="true" /> 21 <!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --> 22 <property name="blockWhenExhausted" value="false" /> 23 </bean> 24 <!-- redis集群 --> 25 <bean id="jedisCluster" class="redis.clients.jedis.JedisCluster"> 26 <constructor-arg index="0"> 27 <set> 28 <bean class="redis.clients.jedis.HostAndPort"> 29 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 30 <constructor-arg index="1" value="7001"></constructor-arg> 31 </bean> 32 <bean class="redis.clients.jedis.HostAndPort"> 33 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 34 <constructor-arg index="1" value="7002"></constructor-arg> 35 </bean> 36 <bean class="redis.clients.jedis.HostAndPort"> 37 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 38 <constructor-arg index="1" value="7003"></constructor-arg> 39 </bean> 40 <bean class="redis.clients.jedis.HostAndPort"> 41 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 42 <constructor-arg index="1" value="7004"></constructor-arg> 43 </bean> 44 <bean class="redis.clients.jedis.HostAndPort"> 45 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 46 <constructor-arg index="1" value="7005"></constructor-arg> 47 </bean> 48 <bean class="redis.clients.jedis.HostAndPort"> 49 <constructor-arg index="0" value="192.168.101.3"></constructor-arg> 50 <constructor-arg index="1" value="7006"></constructor-arg> 51 </bean> 52 </set> 53 </constructor-arg> 54 <constructor-arg index="1" ref="jedisPoolConfig"></constructor-arg> 55 </bean>
测试代码:
1 private ApplicationContext applicationContext; 2 3 @Before 4 public void init() { 5 applicationContext = new ClassPathXmlApplicationContext( 6 "classpath:applicationContext.xml"); 7 } 8 9 //redis集群 10 @Test 11 public void testJedisCluster() { 12 JedisCluster jedisCluster = (JedisCluster) applicationContext 13 .getBean("jedisCluster"); 14 15 jedisCluster.set("name", "zhangsan"); 16 String value = jedisCluster.get("name"); 17 System.out.println(value); 18 }