redis与spring整合·

单机版:

配置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     }
原文地址:https://www.cnblogs.com/the-wang/p/8570010.html