• 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. }  

     


  • 相关阅读:
    python06
    python05
    Python02
    pythonday01
    python04
    Mac下如何安装pip
    更改pip源至国内镜像,显著提升下载速度
    login登录加密
    虚拟机安装Centos6.5之后的网络配置
    git常用的问题
  • 原文地址:https://www.cnblogs.com/codestarer/p/13635585.html
Copyright © 2020-2023  润新知