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的配置,参见之前的博客。

Java代码  
  1. <bean id = "jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">  
  2.   <constructor-arg index="0" ref="jedisPoolConfig"/>  
  3.   <property name="hostName" value="${redis.host}"/>  
  4.   <property name="port" value="${redis.port}"/>  
  5.   <property name="timeout" value="${redis.timeout}"/>  
  6.   <property name="password" value="${redis.password}"/>  
  7. </bean>  

 2. 定义redisTemplate:提供了对Jedis进行的通用API操作。

Java代码  
  1. <bean id = "redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">  
  2.    <property name="connectionFactory" ref="jedisConnectionFactory"/>  
  3.    <property name="keySerializer">  
  4.       <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"></bean>  
  5.    </property>  
  6. </bean>  

  说明:
    @ SDR默认采用JDK的序列化机制:
     使用JdkSerializationRedisSerializer类,进行对象和byte[]之间的相互转换,就像之前已经做得那样。
    @ 通常情况下,我们使用字符串形式的key即可,因此:指定keySerializer为StringRedisSerializer类,如上配置。
 3. 使用redisTemplate:作为字段,注入到Service层即可。

Java代码  
@Slf4j
@Component
public class RedisOpsManagerImpl implements RedisOpsManager{
    @Autowired
    private RedisTemplate redisTemplate;
    ...
}

 <四>. 我最喜欢的CRUD:不解释

Java代码  
  1. /* 
  2.  * Copyright (c) 2014, Nick Xu, All rights reserved. 
  3.  */  
  4. package com.sdr.cache;  
  5.   
  6. import org.springframework.data.redis.core.RedisTemplate;  
  7.   
  8. import com.sdr.model.Userinfo;  
  9.   
  10. /** 
  11.  * 功能简述: SDR入门操作. 
  12.  * @author Nick Xu 
  13.  * @version 1.0 
  14.  */  
  15. public class UserStorage {  
  16.       
  17.     private RedisTemplate<String, Userinfo> redisTemplate;  
  18.       
  19.     public void addOrUpdate(Userinfo user) {  
  20.         redisTemplate.opsForValue().set("user.userid." + user.getUserId(), user);  
  21.     }  
  22.       
  23.     public Userinfo load(int userId) {  
  24.         return redisTemplate.opsForValue().get("user.userid." + userId);  
  25.     }  
  26.   
  27.     public void delete(int userId) {  
  28.         redisTemplate.delete("user.userid." + userId);  
  29.     }  
  30.       
  31.     public RedisTemplate<String, Userinfo> getRedisTemplate() {  
  32.         return redisTemplate;  
  33.     }  
  34.       
  35.     public void setRedisTemplate(RedisTemplate<String, Userinfo> redisTemplate) {  
  36.         this.redisTemplate = redisTemplate;  
  37.     }  
  38. }  

 


原文地址:https://www.cnblogs.com/codestarer/p/13635585.html