zoukankan      html  css  js  c++  java
  • Redis(二):Spring + RedisTemplate 操作Redis(单机)

    1. POM.xml

    <dependency>  
        <groupId>org.springframework.data</groupId>  
        <artifactId>spring-data-redis</artifactId>  
        <version>1.7.0.RELEASE</version>  
    </dependency>  
    <dependency>  
        <groupId>redis.clients</groupId>  
        <artifactId>jedis</artifactId>  
        <version>2.8.0</version>  
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-annotations</artifactId>
        <version>2.7.9</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.7.9</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.7.9</version>
    </dependency>

    2. redis.properties

    #ip地址  
    redis.host=192.168.170.129  
    #端口号  
    redis.port=6379  
    #密码  
    #redis.password=  
    #链接数据库  
    #redis.default.db=0  
    #客户端超时时间单位是毫秒  
    redis.timeout=100000  
      
    #最大空闲数  
    redis.maxIdle=300  
    #最大连接数,0表示无限制,如果jedis2.4以后用redis.maxTotal  
    #redis.maxActive=300  
    redis.maxTotal=1000  
    #最大建立连接等待时间  
    redis.maxWaitMillis=1000  
    #连接的最小空闲时间 默认18000000毫秒(30分钟)  
    redis.minEvictableIdleTimeMillis=300000  
    #每次释放连接的最大数目,默认3  
    redis.numTestsPerEvictionRun=1024  
    #逐出扫描的时间间隔(毫秒) 如果为负数,则不运行逐出线程, 默认-1    
    redis.timeBetweenEvictionRunsMillis=30000  
    #是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个   
    redis.testOnBorrow=true  
    #在空闲时检查有效性, 默认false  
    redis.testWhileIdle=true

    3. application.xml

    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
        <property name="locations">  
            <list>  
                <value>classpath:dbconfig.properties</value>  
                <value>classpath:redis.properties</value>  
            </list>  
        </property>  
    </bean>  
    <!-- ==========================Jedis配置=========================== -->  
    <!-- redis连接池配置 -->  
    <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
        <!-- 最大空闲数 -->  
        <property name="maxIdle" value="${redis.maxIdle}"/>
        <!-- 连接池的最大数据库连接数 -->  
        <property name="maxTotal" value="${redis.maxTotal}"/>
        <!-- 最大建立连接等待时间 -->  
        <property name="maxWaitMillis" value="${redis.maxWaitMillis}"/>
        <!-- 逐出连接的最小空闲时间 默认1800000毫秒(30分钟) -->  
        <property name="minEvictableIdleTimeMillis" value="${redis.minEvictableIdleTimeMillis}"/>
        <!-- 每次逐出检查时,逐出的最大数目,如果为负数就是 : 1/abs(n), 默认3 -->  
        <property name="numTestsPerEvictionRun" value="${redis.numTestsPerEvictionRun}"/>
        <!-- 逐出扫描的时间间隔(毫秒)如果为负数,则不运行逐出线程, 默认-1 -->  
        <property name="timeBetweenEvictionRunsMillis" value="${redis.timeBetweenEvictionRunsMillis}"/>
        <!-- 是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 -->  
        <property name="testOnBorrow" value="${redis.testOnBorrow}"/>
        <!-- 在空闲时检查有效性,默认false -->  
        <property name="testWhileIdle" value="${redis.testWhileIdle}"/>
    </bean>  
    <!-- redis单节点数据库连接配置 -->  
    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">  
        <!-- IP地址 -->  
        <property name="hostName" value="${redis.host}"/>
        <!-- 端口  -->  
        <property name="port" value="${redis.port}"/>
        <!-- 密码 -->  
        <!-- <property name="password" value="${redis.password}"/> -->  
        <!-- 客户端超时时间单位是毫秒 -->  
        <property name="timeout" value="${redis.timeout}"/>
        <!-- 连接池配置 -->
        <property name="poolConfig" ref="jedisPoolConfig"/>
    </bean>  
    <!-- redisTemplate配置,redisTemplate是对Jedis的对redis操作的扩展 -->  
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
        <property name="connectionFactory" ref="jedisConnectionFactory"/>
        <!-- 如果不配置Serializer,那么存储的时候缺省使用String,如果用User类型存储,则会提示错误 -->  
        <property name="keySerializer">  
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>
        </property>  
        <property name="valueSerializer">  
            <bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer" />  
        </property>  
        <property name="hashKeySerializer">  
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/>  
        </property>  
        <property name="hashValueSerializer">  
            <bean class="org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer"/>  
        </property>
        <!-- 开启事务 -->  
        <property name="enableTransactionSupport" value="true"/>
    </bean>  

    4. 最后在Service中注入RedisTemplate

    public class TblDeptServiceImpl extends ServiceImpl<TblDeptMapper, TblDept> implements TblDeptService {  
        @Autowired  
        private RedisTemplate redisTemplate;  
          
        public void setUser() {  
            //用redisTemplate操作  
            TblDept tblDept = new TblDept();  
            tblDept.setDeptId(123);  
            tblDept.setRmFlag(1);  
            redisTemplate.opsForHash().put("myhash","user",tblDept);  
        }  
    } 
  • 相关阅读:
    html5 iframe
    html input复选框的checked属性
    H5新特性 本地存储---cookie localStorage sessionStorage
    input获得焦点时,如何让外边框不变蓝
    为了防止页面重新自动加载,可以给a标签设置href="javascript:void(0);"
    函数内部声明变量的时候,一定要使用var命令。如果不用的话,你实际上声明了一个全局变量!闭包访问局部变量
    svg
    js面向对象编程
    图片压缩上传
    jQuery的deferred对象详解
  • 原文地址:https://www.cnblogs.com/yifanSJ/p/9103731.html
Copyright © 2011-2022 走看看