快速入门spring-data-redis,轻松上手

来源:互联网 发布:linux count 命令 编辑:程序博客网 时间:2024/06/09 13:42

1.简单介绍:

spring data的主要子项目,提供从Spring应用程序轻松配置和访问Redis

官网地址: http://projects.spring.io/spring-data-redis/

2.使用方法:

本教程是在有redis的基础上,和spring data整合,实现快速开发

如果没有redis基础,可以参见我的另一篇文章:《redis介绍及使用方法简介 》

(1)引入maven坐标:

<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>1.4.1.RELEASE</version></dependency>

(2)applicationContext.xml引入redis配置文件:

<?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:aop="http://www.springframework.org/schema/aop"xmlns:context="http://www.springframework.org/schema/context"xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd"><!-- 扫描 @Server @Controller @Repository --><context:component-scan base-package="cn.lsy"/><!-- 加载properties文件 --><context:property-placeholder location="classpath:config.properties" /><!-- 引入redis配置 --><import resource="applicationContext-cache.xml"/></beans>

(2)配置spplicationContext-cache.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:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:p="http://www.springframework.org/schema/p"xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:jaxws="http://cxf.apache.org/jaxws"xmlns:cache="http://www.springframework.org/schema/cache"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/data/jpahttp://www.springframework.org/schema/data/jpa/spring-jpa.xsdhttp://cxf.apache.org/jaxwshttp://cxf.apache.org/schemas/jaxws.xsdhttp://www.springframework.org/schema/cachehttp://www.springframework.org/schema/cache/spring-cache.xsd"><!-- jedis 连接池配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">          <property name="maxIdle" value="300" />                <property name="maxWaitMillis" value="3000" />          <property name="testOnBorrow" value="true" />      </bean>  <!-- jedis 连接工厂 --><bean id="redisConnectionFactory"          class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"          p:host-name="localhost" p:port="6379" p:pool-config-ref="poolConfig"          p:database="0" />              <!-- spring data 提供 redis模板  -->    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">          <property name="connectionFactory" ref="redisConnectionFactory" />         <!-- 指定 Serializer;如果不指定,则是是默认的jdkSerializationRedisSerializer-->        <property name="keySerializer">            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />        </property>        <property name="valueSerializer">        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer">         </bean>        </property>     </bean>  </beans>

(3)测试代码:

package cn.lsy.redis.test;import java.util.concurrent.TimeUnit;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext.xml")public class RedisTemplateTest {@Autowiredprivate RedisTemplate<String, String> redisTemplate;@Testpublic void testRedis() {// 保存key value// 设置30秒失效redisTemplate.opsForValue().set("city", "北京", 30, TimeUnit.SECONDS);System.out.println(redisTemplate.opsForValue().get("city"));}}
ops中有的方法:


这里采用的是最简单key-value形式:opsForValue()

设置失效时间的方式也得到封装,直接调用即可: