iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Redis怎么与Spring结合使用
  • 455
分享到

Redis怎么与Spring结合使用

springredis 2023-05-31 05:05:51 455人浏览 独家记忆
摘要

这期内容当中小编将会给大家带来有关Redis怎么与spring结合使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Spring-data-Redis是spring大家族的一部分,提供了在srping应用

这期内容当中小编将会给大家带来有关Redis怎么与spring结合使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

Spring-data-Redis是spring大家族的一部分,提供了在srping应用中通过简单的配置访问redis服务,对reids底层开发包(Jedis,  JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化,支持发布订阅,并对spring 3.1 cache进行了实现。

一、spring-data-redis功能介绍

jedis客户端在编程实施方面存在如下不足:

1)connection管理缺乏自动化,connection-pool的设计缺少必要的容器支持。

2)数据操作需要关注“序列化”/“反序列化”,因为jedis的客户端api接受的数据类型为string和byte,对结构化数据(JSON,xml,pojo等)操作需要额外的支持。

3)事务操作纯粹为硬编码。

4)pub/sub功能,缺乏必要的设计模式支持,对于开发者而言需要关注的太多。

spring-data-redis针对jedis提供了如下功能:

连接池自动管理,提供了一个高度封装的“RedisTemplate”类

针对jedis客户端中大量api进行了归类封装,将同一类型操作封装为operation接口

  • ValueOperations:简单K-V操作
  • SetOperations:set类型数据操作
  • ZSetOperations:zset类型数据操作
  • HashOperations:针对map类型的数据操作
  • ListOperations:针对list类型的数据操作

提供了对key的“bound”(绑定)便捷化操作API,可以通过bound封装指定的key,然后进行一系列的操作而无须“显式”的再次指定Key,即BoundKeyOperations:

  • BoundValueOperations
  • BoundSetOperations
  • BoundListOperations
  • BoundSetOperations
  • BoundHashOperations

将事务操作封装,有容器控制。

针对数据的“序列化/反序列化”,提供了多种可选择策略(RedisSerializer)

jdkSerializationRedisSerializer:POJO对象的存取场景,使用JDK本身序列化机制,将pojo类通过ObjectInputStream/ObjectOutputStream进行序列化操作,最终redis-server中将存储字节序列。是目前最常用的序列化策略。
StringRedisSerializer:Key或者value为字符串的场景,根据指定的charset对数据的字节序列编码成string,是“new String(bytes, charset)”和“string.getBytes(charset)”的直接封装。是最轻量级和高效的策略。

JacksonjsonRedisSerializer:jackson-json工具提供了javabean与json之间的转换能力,可以将pojo实例序列化成json格式存储在redis中,也可以将json格式的数据转换成pojo实例。因为jackson工具在序列化和反序列化时,需要明确指定Class类型,因此此策略封装起来稍微复杂。【需要jackson-mapper-asl工具支持】

OxmSerializer:提供了将javabean与xml之间的转换能力,目前可用的三方支持包括jaxb,apache-xmlbeans;redis存储的数据将是xml工具。不过使用此策略,编程将会有些难度,而且效率最低;不建议使用。【需要spring-oxm模块的支持】
针对“序列化和发序列化”中JdkSerializationRedisSerializer和StringRedisSerializer是最基础的策略,原则上,我们可以将数据存储为任何格式以便应用程序存取和解析(其中应用包括app,hadoop等其他工具),不过在设计时仍然不推荐直接使用“JacksonJsonRedisSerializer”和“OxmSerializer”,因为无论是json还是xml,他们本身仍然是String。如果你的数据需要被第三方工具解析,那么数据应该使用StringRedisSerializer而不是JdkSerializationRedisSerializer。如果你的数据格式必须为json或者xml,那么在编程级别,在redisTemplate配置中仍然使用StringRedisSerializer,在存储之前或者读取之后,使用“SerializationUtils”工具转换转换成json或者xml,请参见下文实例。

基于设计模式,和JMS开发思路,将pub/sub的API设计进行了封装,使开发更加便捷。

spring-data-redis中,并没有对sharding提供良好的封装,如果你的架构是基于sharding,那么你需要自己去实现,这也是sdr和jedis相比,唯一缺少的特性。

二、serializer策略

spring-data-redis提供了多种serializer策略,这对使用jedis的开发者而言,实在是非常便捷。sdr提供了4种内置的serializer:
JdkSerializationRedisSerializer:使用JDK的序列化手段(serializable接口,ObjectInputStrean,ObjectOutputStream),数据以字节流存储

StringRedisSerializer:字符串编码,数据以string存储

JacksonJsonRedisSerializer:json格式存储

OxmSerializer:xml格式存储

其中JdkSerializationRedisSerializer和StringRedisSerializer是最基础的序列化策略,其中“JacksonJsonRedisSerializer”与“OxmSerializer”都是基于stirng存储,因此它们是较为“高级”的序列化(最终还是使用string解析以及构建java对象)。
RedisTemplate中需要声明4种serializer,默认为“JdkSerializationRedisSerializer”:

1) keySerializer :对于普通K-V操作时,key采取的序列化策略

2) valueSerializer:value采取的序列化策略

3) hashKeySerializer: 在hash数据结构中,hash-key的序列化策略

4) hashValueSerializer:hash-value的序列化策略

无论如何,建议key/hashKey采用StringRedisSerializer。

三、使用实例

添加jar依赖

<dependency>       <groupId>redis.clients</groupId>       <artifactId>jedis</artifactId>       <version>2.3.1</version>     </dependency>     <dependency>       <groupId>org.springframework.data</groupId>       <artifactId>spring-data-redis</artifactId>       <version>1.5.0.RELEASE</version>     </dependency>     <dependency>       <groupId>org.slf4j</groupId>       <artifactId>slf4j-log4j12</artifactId>       <version>1.7.10</version>     </dependency> 

--结束END--

本文标题: Redis怎么与Spring结合使用

本文链接: https://www.lsjlt.com/news/223763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis怎么与Spring结合使用
    这期内容当中小编将会给大家带来有关Redis怎么与Spring结合使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Spring-data-redis是spring大家族的一部分,提供了在srping应用...
    99+
    2023-05-31
    spring redis
  • spring怎么与struts结合使用
    这期内容当中小编将会给大家带来有关spring怎么与struts结合使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Struts调用流程如下图所示。       ...
    99+
    2023-05-31
    spring struts
  • Mybatis怎么与Spring结合使用
    Mybatis怎么与Spring结合使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。所需要用到的其他工具或技术:项目管理工具 : Maven前台WEB展示:JSP其他框架:S...
    99+
    2023-05-31
    mybatis spring
  • spring boot怎么与kafka结合使用
    spring boot怎么与kafka结合使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。引入相关依赖<dependency> <groupId>o...
    99+
    2023-05-31
    springboot kafka
  • Redis整合Spring结合使用缓存实例
    一、Redis介绍 什么是Redis? redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、s...
    99+
    2022-06-04
    缓存 实例 Redis
  • spring Boot怎么与Thymeleaf模板引擎结合使用
    这篇文章给大家介绍spring Boot怎么与Thymeleaf模板引擎结合使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Thymeleaf:Thymeleaf是一个java类库,他是一个xml/xhtml/htm...
    99+
    2023-05-31
    springboot thymeleaf
  • SpringCache与Redis结合的使用方式
    目录Redis创建Spring项目集成RedisCache部分代码@Cacheable 作用和配置方法@CacheEvict 作用和配置方法前不久做了一个需要查询多,更新少的功能,老...
    99+
    2022-11-12
  • 详解redis与spring的整合(使用缓存)
    1、实现目标通过redis缓存数据。(目的不是加快查询的速度,而是减少数据库的负担)  2、所需jar包注意:jdies和commons-pool两个jar的版本是有对应关系的,注意引入jar包是要配对使用,否则将会报错。因为commons...
    99+
    2023-05-31
    spring redis
  • Redis整合Spring及结合使用缓存的示例分析
    Redis整合Spring及结合使用缓存的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、Redis介绍什么是Red...
    99+
    2022-10-19
  • Redis列表与集合怎么使用
    这篇文章主要讲解了“Redis列表与集合怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis列表与集合怎么使用”吧!列表列表是Redis中另外一种数据类型。下面我们来看看列表中一...
    99+
    2023-06-19
  • spring cloud zuul 与 sentinel的结合使用操作
    spring cloud zuul 与 sentinel结合 本来大型服务处理请求超时,限流,降级熔断工作用hystrix,但是这个这个项目不再更新了,虽说它现在提供的版本不会影响到...
    99+
    2022-11-12
  • spring怎么整合redis集群
    要整合Spring与Redis集群,可以按照以下步骤进行操作: 添加Redis集群依赖:在Spring Boot项目的pom.xm...
    99+
    2023-10-25
    redis spring
  • spring如何整合redis使用
    小编给大家分享一下spring如何整合redis使用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.简单介绍redis 是基于...
    99+
    2022-10-19
  • Android RxJava与Retrofit怎么结合使用
    本篇内容介绍了“Android RxJava与Retrofit怎么结合使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!添加依赖c...
    99+
    2023-07-05
  • Python与Spring的完美结合:如何使用数组?
    在软件开发中,数组是一种非常常见的数据结构,它可以用来存储一组相同类型的数据。Python和Spring分别是两种非常流行的编程语言和框架,那么如何在这两者之间实现完美的结合,以便更好地使用数组呢?本文将为您介绍Python和Spring...
    99+
    2023-06-20
    spring 数组 教程
  • Python中Playwright与pyunit怎么结合使用
    这篇文章主要介绍“Python中Playwright与pyunit怎么结合使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中Playwright与pyunit怎么结合使用”文章能帮助大...
    99+
    2023-07-05
  • 简介Lua脚本与Redis数据库的结合使用
    可能你已经听说过Redis 中嵌入了脚本语言,但是你还没有亲自去尝试吧? 这个入门教程会让你学会在你的Redis 服务器上使用强大的lua语言。 Hello, Lua! 我们的第一个Redis Lua ...
    99+
    2022-06-04
    脚本 数据库 简介
  • spring框架怎么使用redis
    "spring框架使用redis的方法:在pom.xml中导入redis的相关依赖,例如:<dependency><groupId>redis.clients</groupId><arti...
    99+
    2022-10-11
  • ASP和Spring如何结合使用?
    ASP和Spring是两个不同的框架,ASP是一种微软公司开发的服务器端脚本语言,而Spring是一种Java开源框架。它们各自有自己的优点和特点,但是如果能够结合使用,可以实现更加强大的功能。 在本文中,我们将介绍ASP和Spring如...
    99+
    2023-06-04
    spring 函数 bash
  • Python 和 Spring 如何结合使用?
    Python 和 Spring 是两个不同的编程语言和框架,它们分别用于不同的用途。Python 是一种高级编程语言,它被广泛应用于数据科学、机器学习、Web 开发等领域。Spring 是一种 Java 框架,它为企业级应用程序提供了一种...
    99+
    2023-06-27
    spring apache django
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作