设为首页 收藏本站
查看: 605|回复: 0

[经验分享] Redis入门很简单之八【Spring Data Redis初探】

[复制链接]

尚未签到

发表于 2016-12-19 07:33:28 | 显示全部楼层 |阅读模式
  <一>. 简单介绍:
        Spring Data貌似提供了对很多数据访问技术的支持,比如JPA、Redis、MongoDB、Hadoop等等。
  闲言少述,现在Redis是被关注的对象,尽管我没有对象;Spring Data Redis(以下简称SDR)在Jedis的基础上,提供了对Redis访问的进一步封装。使用SDR,不在需要手动维护连接的建立、释放,对对象序列化提供了默认实现、不再需要事必亲为。 DSC0000.gif
        当然,至少在我看来SDR目前貌似还在incubator里面,提供给我们的API并不完善,依赖的冲突让人揪心,不提供Sharding机制等 DSC0001.gif ,因此仅作了解,就算是打发时间了吧。
  <二>. 关于依赖:
       如果你使用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 ... DSC0002.gif

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-316088-1-1.html 上篇帖子: Redis主从监控,故障自动切换 下篇帖子: redis的failover ,redmon安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表