Redis入门很简单之八【Spring Data Redis初探】
<一>. 简单介绍:
        Spring Data提供了对很多数据访问技术的支持,比如JPA、Redis、MongoDB、Hadoop等等。
Spring Data Redis(以下简称SDR)在Jedis的基础上,提供了对Redis访问的进一步封装。使用SDR,不再需要手动维护连接的建立、释放,对对象序列化提供了默认实现、不再需要事必亲为。
 <二>. 关于依赖:
      
<properties> <redis.version>2.6.2</redis.version> <spring-data-redis.version>1.5.0.RELEASE</spring-data-redis.version> </properties>
<!-- redis 连接客户端:jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>${redis.version}</version> </dependency> <!-- spring集成的基于jedis的redis客户端操作jar包--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>${spring-data-redis.version}</version> </dependency>
<三>. 关于配置:applicationContext.xml
1. 定义连接工厂:关于jedisPoolConfig的配置,参见之前的博客。
- <bean id = "jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
 - <constructor-arg index="0" ref="jedisPoolConfig"/>
 - <property name="hostName" value="${redis.host}"/>
 - <property name="port" value="${redis.port}"/>
 - <property name="timeout" value="${redis.timeout}"/>
 - <property name="password" value="${redis.password}"/>
 - </bean>
 
2. 定义redisTemplate:提供了对Jedis进行的通用API操作。
- <bean id = "redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
 - <property name="connectionFactory" ref="jedisConnectionFactory"/>
 - <property name="keySerializer">
 - <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>
 - </property>
 - </bean>
 
  说明:
    @ SDR默认采用JDK的序列化机制:
     使用JdkSerializationRedisSerializer类,进行对象和byte[]之间的相互转换,就像之前已经做得那样。
    @ 通常情况下,我们使用字符串形式的key即可,因此:指定keySerializer为StringRedisSerializer类,如上配置。
 3. 使用redisTemplate:作为字段,注入到Service层即可。
<四>. 我最喜欢的CRUD:不解释
- /*
 - * Copyright (c) 2014, Nick Xu, All rights reserved.
 - */
 - package com.sdr.cache;
 - import org.springframework.data.redis.core.RedisTemplate;
 - import com.sdr.model.Userinfo;
 - /**
 - * 功能简述: SDR入门操作.
 - * @author Nick Xu
 - * @version 1.0
 - */
 - public class UserStorage {
 - private RedisTemplate<String, Userinfo> redisTemplate;
 - public void addOrUpdate(Userinfo user) {
 - redisTemplate.opsForValue().set("user.userid." + user.getUserId(), user);
 - }
 - public Userinfo load(int userId) {
 - return redisTemplate.opsForValue().get("user.userid." + userId);
 - }
 - public void delete(int userId) {
 - redisTemplate.delete("user.userid." + userId);
 - }
 - public RedisTemplate<String, Userinfo> getRedisTemplate() {
 - return redisTemplate;
 - }
 - public void setRedisTemplate(RedisTemplate<String, Userinfo> redisTemplate) {
 - this.redisTemplate = redisTemplate;
 - }
 - }
 
                    
                
                
            
        
浙公网安备 33010602011771号