![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring-redis
Java 程序源
微信公众号: Java 程序源,敬请关注!
展开
-
01. SDR(spring-data-redis) 简介
Spring Data Redis(简称SDR) 是spring 操作redis 的一个框架, 可以使用jedis 驱动或Lettuce 驱动, SDR 2.x 系列默认使用Lettuce 驱动.1. RedisTemplate1.1 简介SDR 在应用启动时,会自动向spring 容器中注入一个RedisTemplate 实例和一个StringRedisTemplate 实例Redis...原创 2019-08-27 16:06:35 · 3916 阅读 · 0 评论 -
12. SDR 管道API-pipleline
我们知道Redis 是支持弱事务的, Redis 中的事务只能保证命令在同一个连接中执行,当发生异常后并不会进行事务回滚. SDR 对这种弱事务也提供了支持。 除了支持redis-cli 客户端的multi, exec, discard 命令之外, SDR 还支持使用声明式注解@Transaction 注解类强制开启事务, 但笔者并未使用过,如果有兴趣,可以自行尝试。1. SDR 事务1.1 ...原创 2019-08-27 16:08:02 · 3850 阅读 · 0 评论 -
10. SDR 阻塞队列实现生产者消费者模式
Redis 默认的发布订阅模式, 当有消息产生时, 所有订阅该频道channel的客户端都会接收到消息。 有时我们希望一个消息只能被一个客户端消费,也就是类似于生产者消费者模式,我们可以借助于redis 的阻塞队列来实现. 借助于redis 阻塞队列实现的生产者消费者模式,有以下特点:一条消息只能被一个客户端消费,在并发应用中也是如此当队列中没有消息时,队列会处于阻塞状态. 当有消息后,重新...原创 2019-08-27 16:08:12 · 3786 阅读 · 0 评论 -
09. SDR 发布订阅
Redis 使用channel实现pub/sub(发布订阅)功能,RedisTemplate对此也提供了相应的实现。一个消息会被推送到所有订阅了此消息到终端。1. SDR 实现channel 流程1.1 开发流程创建消息监听器实现类,对接受到的消息做相应的业务处理创建消息监听适配器,对消息监听器做不同的设置,如序列化方式等。将消息监听适配器注册到spring容器中创建消息监听容器,并...原创 2019-08-27 16:08:17 · 3659 阅读 · 0 评论 -
08. SDR 自定义序列化-Gzip 压缩
Redis 可以通过客户端命令redis-cli 直接连接, 然后直接操作其中的数据。当使用redis 存储一些敏感数据,或者是数据较大的数据时,我们可以对value进行加密序列化或压缩序列化。对于节省内存而言,采用Gzip压缩也是一个不错的方案。 笔者采用的方案是,先将对象序列化json, 然后再对json进行Gzip 压缩.1. 自定义压缩序列化1.1 GzipJsonSerializer...原创 2019-08-27 16:08:21 · 3656 阅读 · 0 评论 -
07. SDR 自定义序列化-fastjson
对于json 解析, 除了jackson之外, fastjson 也是一种常用的解析方式。虽然SDR 并为直接提供Fastjson 的序列化方式, 但是fastjson 却提供了两个RedisSerializer 的实现类, 我们可以直接整合使用.1. FastJson 提供的RedisSerializer 实现类fastjson 为RedisSerializer 接口提供了两个实现类Gene...原创 2019-08-27 16:08:25 · 3837 阅读 · 0 评论 -
06. SDR 序列化方式-Serializer
SDR 的序列化是spring data redis 框架中一个非常重要的核心概念, 只有理解了SDR 的序列化,才能搞清楚RedisTemplate 的机制, 才能搞清楚RedisTemplate 和 StringRedisTemplate 之间的区别. Redis1. SDR 的序列化1.1 什么是序列化对于数据,在Redis中的存储形式为字节, 但是在java 语言中可以是基础类型或自...原创 2019-08-27 16:08:29 · 3610 阅读 · 0 评论 -
05. SDR StringRedisTemplate 简介
StringRedisTemplate 是SDR 默认提供的一个操作Redis 的工具类, 其key和value序列化方式均采用 StringRedisSerializer, 也就导致了StringRedisTemplate只能对key 和 value 均为String 类型的进行操作. 其常用API 全部继承于RedisTemplate.1. StringRedisTemplate 源码从源...原创 2019-08-27 16:08:32 · 3792 阅读 · 0 评论 -
04. SDR RedisTemplate API 简介
RedisTemplate 提供的API 是比较丰富的, 所以要想完全熟练掌握所有API 的特性,并不太容易, 而且也没有太大必要。 RedisTemplate 提供的API 大都和redis-cli 命令行支持的命令类似,而且SDR 源码中注释比较清楚,所以我们无须记忆所有API 的特点, 只需掌握如何使用方式即可, 当需要用某种类型时, 翻阅一下源码的API 说明即可.1. 常用API根据...原创 2019-08-27 16:08:40 · 3606 阅读 · 0 评论 -
03. SDR RedisTemplate 简介
RedisTemplate 是SDR 提供的操作Redis 的模板类, 默认对key和value均使用jdk序列化方式, 但是笔者并不经常使用jdk 序列化方式也不推荐这种序列化方式,笔者更推荐使用json序列化方式或自定义序列化方式。除了使用SDR 默认提供的RedisTemplate 也可以自定义RedisTemplate.1. RedisTemplate1.1 SDR 默认注册Redis...原创 2019-08-27 16:08:44 · 3555 阅读 · 0 评论 -
02. SDR 环境搭建
Spring Data Redis(简称SDR) 是spring 操作redis 的一个框架, 可以使用jedis 驱动或Lettuce 驱动, SDR 2.x 系列默认使用Lettuce 驱动. SpringBoot 整合Spring data redis 方式比较简单, 需要注意的是,redis 有三种集群: 单实例, 高可用集群, 分片集群。 SDR 对于不同的方式配置略有不同.1. 引入...原创 2019-08-27 16:08:49 · 3807 阅读 · 0 评论 -
11. SDR 事务
1. Redis 的pipeline1.1 什么是pipelineRedis 中的pipeline 管道命令类似于批处理执行命令。 普通执行一次Redis 命令会进行一次TCP连接的创建与销毁, 执行多条Redis 命令就会进行多次TCP连接的创建与销毁, 而TCP 连接的创建与销毁时比较耗时。 采用pipeline技术, 是先将多条命令添加到队列中,然后创建一次TCP连接,将每次命令的执行结...原创 2019-08-27 16:08:08 · 3533 阅读 · 0 评论