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

Spring Data Redis 实践 关于Spring Data Redis的简单应用以及1.7新特性Redis Repositories简介~ 阅读详情
<一>. 简单介绍:

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

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代码  收藏代码
  1. <bean id = "userStorage" class="com.sdr.cache.UserStorage">  
  2.    <property name="redisTemplate" ref="redisTemplate"/>  
  3. </bean>  

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

 

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

Spring Data Redis 实战指南 通过@RedisHash注解定义Redis存储结构,该注解需指定哈希前缀值作为领域模型的命名空间标识。实体类需使用@Id标注主键字段,存储时将自动组合为[前缀]:[ID值]@Data@Id// 其他字段...Spring Data Redis 提供了完整的 Redis 集成解决方案,通过注解驱动开发模式显著提升了开发效率。与 Spring Boot 的深度集成简化了配置流程,开发者可以快速实现多种数据结构的灵活存储。开发效率@RedisHash等注解自动处理对象-存储映射,接口免除样板代码。 阅读详情

相关推荐

SpringCloud集成Spring Data Redis

文章目录Spring Data Redis源码springcloud-parent2父Maven模块spring-redis子Maven模块结果分析 Spring Data Redis   如同使用SpringData进行关系型数据库访问一样,使用Spring Data Redis的第一步就是连接到Redis服务器。要想实现连接,就需要获取RedisConnection,而获取RedisConne...

ZZY1078689276的专栏 3530

Spring Data Redis

Spring Data Redis的使用,什么时候用redis

m0_71560190的博客 6365

Python逻辑回归——以车险定价为例(附代码)

保费定价也成为费率厘定,是保险公司运营的环节之一。其过程是根据保单(被保险人)的损失经验和其他相关信息建立模型,并且对未来的保险成本(赔款、代理人佣金、一般管理费用、理赔费用以及支持该业务所需的资本金成本)进行预测的过程。保险公司实际使用的费率还会受到市场供求关系和公司自身发展战略的影响。汽车保险也称机动车辆保险,失意机动车辆本身及其第三者责任等为保险标的的一种运输工具险,在非寿险井算领域中占有重要地位。

m0_62929945的博客 1985

SpringDataRedis

SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis,官网地址提供了对不同Redis客户端的整合(Lettuce和Jedis)提供了RedisTemplate统一API来操作Redis支持Redis的发布订阅模型支持Redis哨兵和Redis集群支持基于Lettuce的响应式编程支持基于JDK、JSON、字符串、Spring对象的数据序列化及反序列化。

weixin_43811057的博客 4490

SBM与超效率SBM模型实战:从原始面板数据到MATLAB高效实现

本文详细介绍了SBM模型与超效率SBM模型的核心原理,并提供了从原始面板数据预处理到MATLAB高效实现的完整实战指南。通过具体代码解析,帮助研究者掌握如何利用MATLAB进行数据标准化、模型构建、效率求解及结果可视化,从而精准评估决策单元的相对效率,尤其适用于在高效单元中进一步精细排名的场景。

weixin_29100399的博客 481

Windows系统的Mamba环境配置详细教程(状态空间模型)

causal_conv1d也是安装mamba的依赖必须库。安装完成后,通过pip list可以查看到安装的库。Triton是安装mamba的依赖,需要先安装。上述工作准备好后,按下面步骤安装。直接根据离线文件安装即可。是自己的虚拟环境名字。

2301_77831163的博客 3677

RedisTemplate

Redis Redis是一个基于内存的数据库,而且提供了 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等多种数据类型。 spring-redis spring-data-redis针对jedis提供了如下功能: 连接池自动管理,提供了一个高度封装的“RedisTemplate”类 针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口 ValueOperations:简单K-V操作 S

weixin_43877653的博客 1001

以太网物理层协议整理(2)-万兆以太网

在万兆以太网标准化过程中,IEEE和10GEA(万兆以太网联盟)是两个最重要的组织。 万兆以太网标准和规范都比较繁多,在标准方面,首先有2002年的IEEE 802.3ae,后来也不断有新的万兆以太网规范推出,如2006年的IEEE 802.3an标准(10GBase-T)就推出了基于双绞铜线的万兆以太网规范,同样的IEEE 802.3aq标准推出了基于光纤的10GBase-LRM;2007年的

NowOrNever 3万+

SpringData Redis

目录1 SpringData Redis简介2 Redis环境搭建2.1 安装redis的依赖环境2.2 上传安装包2.3 解压2.4 编译2.5 安装2.6 复制配置文件2.7 修改redis的配置文件2.8 启动redis服务3 SpringData Redis入门案例3.1 创建工程,引入坐标3.2 创建配置文件3.3 创建测试类,完成一条简单数据的存取4 SpringData Redis的序列化器5 SpringData Redis运行原理分析6 SpringData Redis常见操作6.1 St

赵广陆 3530

Android P HAL层添加HIDL实例(详细实现步骤)

Android P HAL层添加HIDL实例 本文将介绍如何在P OS上添加HIDL实例,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。 调用过程为 APP->TestManager->TestService->ITast.hal 文章目录Android P HAL层添加HIDL实例实现过程一 、hardware部分1...

sinat_18179367的博客 1万+

Mendix 开发实践指南|Mendix平台概览

低代码开发是一种将编码从文本形式转变为视觉形式的应用开发方法。它提供了一个模型驱动的、拖放式的界面,而不是传统的编码环境,使得各种技能水平的开发者——包括专业开发人员、新手、主题专家、业务利益相关者和决策者——都能使用低代码工具来构建驱动价值的企业业务应用。低代码的核心在于提高开发的可访问性和效率,让更多人能够参与到应用开发中来​​。Mendix适用于多种应用场景,包括企业级应用、移动应用、物联网(IoT)应用和微服务架构等。

多年搬砖的经验分享... 4415

Redis基础篇:SpringDataRedis

Redis基础篇:SpringDataRedis

七叔的博客 2万+

华为OD机试真题 新系统2026-04-15 Java&Go 实现【小猫钓鱼纸牌游戏】

有两名玩家甲和乙,他们玩一种“小猫钓鱼”扑克牌游戏。扑克牌为A、2、3、....J、Q、K,不考虑花色都用1-13来表示,然后给甲,乙两人各发n张牌,按给定顺序排成队列,这些牌背面朝上,正面朝下放置,队列的第一个元素是背面的第一张牌。 游戏规则如下:

MISAYAONE的博客 357

Redis系列之Spring Data Redis

概述、自动配置、入门使用、RedisTemplate、方法分类、execute类、原生Redis指令、排序、事务、Redis Server、Operations有两类、CAS操作、发布订阅、Lua脚本、序列化、StringRedisSerializer、RedisSerializer、属性配置、RedisCallback、SessionCallback

lonelymanontheway的博客 2984

华为OD机试 - 最快到达医院的方法(Python/JS/C/C++ 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 2172

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spring Data Redis 详解

Redis 其实非常简单,但是使用了 Spring Data Redis,会发现更简单,其实相当于加了个中间层在里面,并不需要再去关注多种 Redis 的工具库了。

RedRay0的博客 1995

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Spring-data-redis介绍

spring data是用于简化数据库访问的开源框架,其主要目标是使得对数据的访问变得方便快捷,主要包括:jdbc、redis、jsp、elasticsearch只要是Java的开发,基本上都应用大型的开发环境(毕竟生态很成熟,别说所谓的其他语言好与坏),既然要开发啊Java项目,必然要有Spring开发框架,那么既然有了Spring开发框架,就需要"万物整合",自然也就包含了Redis的整合,

weixin_42486553的博客 1688

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Redis以及Spring Data Redis

springboot项目中资源缓存,以及定时清理无用资源

轻言细语莫泪痕 2024

Spring Data Redis入门小Demo

现在面临这样一个问题:现在把项目跑起来,网站首页的访问压力会很大,因为每次访问都会去数据库查一遍广告表,这样广告表的访问压力会很大,那每个人都访问,每个人都访问,这不是我们最终的一个解决方案了。我们这时候对数据库访问压力太大,那么我们怎么才能降低对数据库的访问压力呢?这时候我们通常会用到缓存,之前讲过一个缓存类的产品,叫Redis,我们现在可以简单回顾一下这个Redis。

ronybo的博客 468

Redis缓存的简单使用:Spring Data Redis、Spring Cache框架

对于需要经常查询的热点数据,如果用户端访问量比较大,数据库访问压力会随之增大,使得系统响应慢、用户体验差。这时就可以使用Redis作为缓存,减少数据库查询操作。redis默认是没有密码的,密码需要在redis.conf 中配置:requirepass 123456。redis默认有db0~db15共16个数据库,这里配置使用第3个数据库。3.如果不存在,查询数据库,将查询到的数据放入redis中。4.如果进行了增删改操作,需要更新缓存中的数据。2.如果存在,直接返回,无需查询数据库。

2401_83351224的博客 1278

spring.redis 和 spring.data.redis的区别

Bean总结:负责 Redis 的基础连接配置(必填)。:控制 Spring Data Redis 的高级行为(可选)。两者是互补关系,共同完成对 Redis 的完整集成。

qq_37533306的博客 1724
上一篇: Redis入门很简单之七【使用Jedis实现客户端Sharding】
下一篇: Redis 命令参考链接(译文)
codepython
博客等级 码龄20年 125粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值