• 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     }
  • 相关阅读:
    Python实现DES加密算法
    空循环,g++ O2优化
    java 高并发下超购问题解决
    原型模式
    Lambda速学
    观察者模式
    略读策略模式
    .net 字典的速学
    执行计划准备篇
    关于“策略模式”与“桥接模式”的问题
  • 原文地址:https://www.cnblogs.com/the-wang/p/8570010.html
Copyright © 2020-2023  润新知