`

Redis入门很简单之八【Spring Data Redis初探】

阅读更多

<一>. 简单介绍:
        Spring Data貌似提供了对很多数据访问技术的支持,比如JPA、Redis、MongoDB、Hadoop等等。

        闲言少述,现在Redis是被关注的对象,尽管我没有对象;Spring Data Redis(以下简称SDR)在Jedis的基础上,提供了对Redis访问的进一步封装。使用SDR,不在需要手动维护连接的建立、释放,对对象序列化提供了默认实现、不再需要事必亲为。眨眼
        当然,至少在我看来SDR目前貌似还在incubator里面,提供给我们的API并不完善,依赖的冲突让人揪心,不提供Sharding机制等保密,因此仅作了解,就算是打发时间了吧。

 <二>. 关于依赖:
       如果你使用Maven进行搭建的话,这个根本就不是个问题,本该由你关注的问题,工具已经给自动搞定了,你所要做的就是学习工具罢了。然而,像我这样老顽固,作为一个身无长物的屌丝,还是愿意尝试一下不使用Maven的原生态做法。对我来说,这并不损失什么。
  1. 很遗憾,SDR依赖的的是Spring的高版本3.x,我真的不知道如果它依赖的是Spring 2.x版本有什么坏处,当然这不是我能掌控的。
添加如下所示的Spring各个模块即可,No more no less,ok!
      spring-core-3.2.3.RELEASE.jar
      spring-beans-3.2.3.RELEASE.jar
      spring-context-3.2.3.RELEASE.jar
      spring-context-support-3.2.3.RELEASE.jar
      spring-expression-3.2.3.RELEASE.jar
      spring-tx-3.2.3.RELEASE.jar
      spring-aop-3.2.3.RELEASE.jar


       aopalliance-1.0.jar
 2. 日志依赖:
      commons-logging.jar
      log4j-1.2.15.jar
 3. jedis和连接池:
      jedis-2.1.0.jar
      commons-pool.jar
 4. SDR依赖:
      spring-data-redis-1.0.0.RELEASE.jar
 5. 说明:关于Spring、commons-pool、jedis、spring-data-redis的版本,很容易导致冲突,挺烦人的,呜呜...   各位不妨一试,如果有更好方案,烦请告诉我!

 

 <三>. 关于配置: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层即可。

    <bean id = "userStorage" class="com.sdr.cache.UserStorage">
       <property name="redisTemplate" ref="redisTemplate"/>
    </bean>

 <四>. 我最喜欢的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;
    }
}

 

    心如止水,把自己学习Redis的一点一滴全都放到了ITeye上面,
    我知道我是写给自己看的,
    我欣赏安安静静、心无旁骛的自己,
    尽管有些人戏谑般的说是自恋,
    我相信, I don't care ...尴尬

 

1
0
分享到:
评论
13 楼 114846108 2017-03-27  
写的非常好,入门啦,感谢楼主。
12 楼 di1984HIT 2017-02-02  
学习了  
11 楼 hcysoul 2016-08-17  
到现在为止,我看到的最好的一篇redis的文章。给楼主100个赞,现在的spring data redis貌似已经支持主从了
10 楼 hzsdhf404 2015-12-15  
VERY NICE,THS
9 楼 长滩岛上的辣炒年糕 2015-12-11  
非常感谢,对编程越来越有兴趣了
8 楼 huoku 2015-11-04  

现在才开始学习redis    楼主写的文章很好   一步一步由浅入深   谢谢
从中学到很多东西。。
希望最后可以附上一个具体的使用   然后加以说明  这样就更好了。。
楼主辛苦。。。。
7 楼 josico 2015-06-06  
聊天至于呵呵
Hello_Nick_Xu 写道
liyangzengzeng 写道
看之并学习之,吐槽一下:楼主没有对象但是很自信啊,“我欣赏安安静静、心无旁骛的自己”,是不是没有安安静静、心无旁骛的女生配得上你~哈哈开个玩笑,很感谢这个分享,很详细,学到了不少东西。redis这样算是入门了吗?有机会要用实践检验一下,demo是不一定考虑得全面,不一定完全实用,不一定能用于生产环境的。    


呵呵,我觉得学习一项技术能够迅速上手,并且深入理解是比较重要的;
至于在具体项目中的实践应用 ,应该结合项目架构通盘考虑。
不是三言两语能够说得清楚的,并且也智者见智。

6 楼 123321321 2015-06-03  
3Q学了少好东西。谢谢 
5 楼 wodechanghao 2015-04-26  
redis-cli --raw 下设置中文的值
sadd "hotword" "人民" "中国"

客户端下可以正常显示
爱戴
人民
中国

但是使用jedis读取时乱码
����

亟待楼主帮忙解决
4 楼 Hello_Nick_Xu 2014-07-10  
liyangzengzeng 写道
看之并学习之,吐槽一下:楼主没有对象但是很自信啊,“我欣赏安安静静、心无旁骛的自己”,是不是没有安安静静、心无旁骛的女生配得上你~哈哈开个玩笑,很感谢这个分享,很详细,学到了不少东西。redis这样算是入门了吗?有机会要用实践检验一下,demo是不一定考虑得全面,不一定完全实用,不一定能用于生产环境的。    


呵呵,我觉得学习一项技术能够迅速上手,并且深入理解是比较重要的;
至于在具体项目中的实践应用 ,应该结合项目架构通盘考虑。
不是三言两语能够说得清楚的,并且也智者见智。










3 楼 liyangzengzeng 2014-07-10  
看之并学习之,吐槽一下:楼主没有对象但是很自信啊,“我欣赏安安静静、心无旁骛的自己”,是不是没有安安静静、心无旁骛的女生配得上你~哈哈开个玩笑,很感谢这个分享,很详细,学到了不少东西。redis这样算是入门了吗?有机会要用实践检验一下,demo是不一定考虑得全面,不一定完全实用,不一定能用于生产环境的。    
2 楼 Hello_Nick_Xu 2014-06-12  
josico 写道
不是写给自己看的啊
LZ 我支持你!

呵呵,谢谢
1 楼 josico 2014-06-12  
不是写给自己看的啊
LZ 我支持你!

相关推荐

    SpringDataRedis的jar包.rar

    Spring Data Redis是一个强大的Java库,它是Spring Data项目的一部分,旨在简化与Redis内存数据存储的集成。Redis是一个开源的、高性能的键值数据存储系统,常用于数据库、缓存和消息中间件。Spring Data Redis提供...

    spring data redis api jar

    Spring Data Redis API Jar是Spring Data项目的一个重要组成部分,专门用于集成和操作Redis内存数据存储系统。Spring Data项目旨在简化对各种数据存储技术的访问,包括关系数据库、NoSQL数据库、图数据库等,而...

    Spring Data Redis

    Spring Data Redis 纯英文文档,介绍spring操作redis的一些用法

    spring-data-redis-2.6.1-API文档-中文版.zip

    赠送jar包:spring-data-redis-2.6.1.jar; 赠送原API文档:spring-data-redis-2.6.1-javadoc.jar; 赠送源代码:spring-data-redis-2.6.1-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.6.1.pom; ...

    spring-data-redis 1.7.6

    Spring Data Redis使得在Java应用中集成和操作Redis变得简单而优雅。 在1.7.6版本中,Spring Data Redis提供了一系列的改进和优化,以提升开发者的使用体验。以下将从几个关键点详细阐述这一版本的核心特性: 1. *...

    Spring Data Redis API(Spring Data Redis 开发文档).CHM

    Spring Data Redis。 Spring Data Redis 开发文档。 官网 Spring Data Redis API。

    spring data for redis

    Spring Data for Redis 提供了丰富的API,使得在Java应用程序中使用Redis数据库变得简单高效。Redis是一个高性能的键值存储系统,常用于缓存、消息队列以及作为数据持久化存储。 ### 1. Spring Data Redis的核心...

    spring-data-redis-2.3.9.RELEASE-API文档-中文版.zip

    赠送jar包:spring-data-redis-2.3.9.RELEASE.jar; 赠送原API文档:spring-data-redis-2.3.9.RELEASE-javadoc.jar; 赠送源代码:spring-data-redis-2.3.9.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-...

    spring-data-redis-2.5.5-API文档-中文版.zip

    赠送jar包:spring-data-redis-2.5.5.jar; 赠送原API文档:spring-data-redis-2.5.5-javadoc.jar; 赠送源代码:spring-data-redis-2.5.5-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.5.5.pom; ...

    springMVC集成spring-data-redis

    而Spring Data Redis是Spring Framework的一个模块,专门用于简化与Redis键值存储系统的交互。Redis是一个高性能的、开源的、支持网络的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 在...

    maven版spring-data-redis简单示例

    基于spring的子项目spring-data-redis写的一个基于hash类型的用户CRUD,经过简单的封装,可以实现通用CRUD,请事先安装好redis,配置文件redis.properties请做相应修改,希望对你有帮助。

    spring-session-data-redis-2.0.4.RELEASE-API文档-中英对照版.zip

    赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...

    spring-session-data-redis-2.0.4.RELEASE-API文档-中文版.zip

    赠送jar包:spring-session-data-redis-2.0.4.RELEASE.jar; 赠送原API文档:spring-session-data-redis-2.0.4.RELEASE-javadoc.jar; 赠送源代码:spring-session-data-redis-2.0.4.RELEASE-sources.jar; 赠送...

    spring data redis 小例子

    Spring Data Redis是一个强大的Java库,它为开发人员提供了一种简单的方式来利用Redis内存数据存储进行数据操作。在本文中,我们将深入探讨Spring Data Redis的基本概念、功能和如何通过一个小例子来实现其应用。 ...

    SpringData与Redis集成

    SpringData与Redis集成是现代Java应用中常见的数据存储和缓存解决方案。SpringData是一个强大的框架,它简化了数据库访问,并提供了对多种数据存储技术的统一API。而Redis是一款开源、高性能的键值对数据存储系统,...

    spring data redis 官方文档

    - **启用集群**:Spring Data Redis 支持 Redis 集群模式,可以通过简单配置实现高可用和负载均衡。 - **操作 Redis Cluster Connection**:提供了专门的方法来操作集群连接,包括节点发现、数据分区等功能。 - **...

    spring-data-redis-2.6.1-API文档-中英对照版.zip

    赠送jar包:spring-data-redis-2.6.1.jar; 赠送原API文档:spring-data-redis-2.6.1-javadoc.jar; 赠送源代码:spring-data-redis-2.6.1-sources.jar; 赠送Maven依赖信息文件:spring-data-redis-2.6.1.pom; ...

    spring-data + jedis + redis代码

    本项目聚焦于Spring Data与Jedis的集成,用于利用Redis作为缓存解决方案。Jedis是Java的一个开源客户端,专门用于连接和操作Redis服务器。 首先,让我们详细了解一下Spring Data。Spring Data是一个模块化的项目,...

    spring-data-redis-1.4.1.RELEASE

    spring-data-redis-1.4.1.RELEASE

    Spring-Data-Redis2.0+Spring5

    Spring-Data-Redis2.0整合Spring5的cachemanage例子,JDK要1.8,maven3.5吧。文档地址:http://blog.csdn.net/u011189939/article/details/78621724

Global site tag (gtag.js) - Google Analytics