Spring下Redis的响应式编程
Spring5支持响应式编程方式,能大大提高系统的吞吐量,但是要想实现整个系统的响应式编程需要每个环节都要实现,今天就来讲讲Spring是如何实现Redis的响应编程的。
Spring Data Redis从连接这个层次来做初始的响应式编程支持的,现在只支持Lettuce,因为它是唯一个支持响应式数据操作的Redis驱动。因为Redis一般用在非常低的抽象级别的,所以在现在这个版本上响应式编程的抽象是都是比较低级的接口的抽象。LettuceConnectionFactory允许依次访问ReactiveRedisConnection连接,并依次提供Redis的响应式的命令。
以响应式编程的风格,使用操作方法的函数链来创建链条去操作Redis中的数据,而且,所有I / O都是异步的。
ReactiveKeyCommands keyCommands =connection.keyCommands(); keyCommands.randomKey()
.flatMap(keyCommands::type)
.flatMap(System.out::println)
.subscribe();
以上代码获取随机密钥并打印了它的数据类型。不存在的随机密钥会输出为空Mono。
响应式Redis命令有两种形式:接受普通参数和接受命令发布者。命令发布者发出特定的Redis命令以将数据直接传输到Redis。执行命令后,每个发出的命令都会发出命令响应。
public interface ReactiveStringCommands {
Mono<Boolean> set(ByteBuffer key, ByteBuffer value); Flux<BooleanResponse<SetCommand>> set(Publisher<SetCommand> commands);
}
传统的Spring Data Redis byte[]在其阻塞API上用于交换数据的。如果数据是在一个buffer(如ByteBuffer或Netty中的ByteBuf)中,那么这个byte[]数组会在buffer中进行强制数据复制。响应式支持很有很多是关于有效的资源使用,所以spring决定开放出了接收ByteBuffer参数的方法。
———— / END / ————
Spring下Redis的响应式编程相关推荐
- springboot异步注解_Spring Boot 2 :Spring Boot 中的响应式编程和 WebFlux 入门
[小宅按]Spring 5.0 中发布了重量级组件 Webflux,拉起了响应式编程的规模使用序幕. WebFlux 使用的场景是异步非阻塞的,使用 Webflux 作为系统解决方案,在大多数场景下可 ...
- (转)Spring Boot 2 (十):Spring Boot 中的响应式编程和 WebFlux 入门
http://www.ityouknow.com/springboot/2019/02/12/spring-boot-webflux.html Spring 5.0 中发布了重量级组件 Webflux ...
- Spring笔记(4):响应式编程、Reactor、WebFlux、Flow
目录 1.Spring Webflux 介绍 2.响应式编程(Java 实现) 3.响应式编程(Reactor 实现) 4.SpringWebflux 执行流程和核心 API 5.SpringWebf ...
- 浅谈Spring5 响应式编程
目录 为什么是响应式编程 用于响应式编程实现的理想案例 响应流 (Reactive Streams) Spring 5 提供的响应式编程 Spring Web Reactive vs. Spring ...
- 响应式圣经:10W字,实现Spring响应式编程自由
前言 全链路异步化改造的基础是响应式编程 随着业务的发展,微服务应用的流量越来越大,使用到的资源也越来越多. 在微服务架构下,大量的应用都是 SpringCloud 分布式架构,这种架构总体上是全链路 ...
- Spring WebFlux 响应式编程学习笔记(一)
各位Javaer们,大家都在用SpringMVC吧?当我们不亦乐乎的用着SpringMVC框架的时候,Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFl ...
- 未来:spring响应式编程 Hands-On Reactive Programming in Spring 5 ,为啥需要响应式编程
Why Reactive Spring? 为什么 使用响应式 的spring In this chapter, we are going to explain the concept of react ...
- 【Spring Boot 2.0学习之旅-15】SpringBoot2.0响应式编程
SpringBoot2.0响应式编程 一.SpringBoot2.0 响应式编程基础知识 Spring WebFlux官方文档 SpringBoot WebFlux文档 1.什么是Spring Web ...
- Spring Webflux 响应式编程 (二) - WebFlux编程实战
第一章 Reactive Stream 第1节 jdk9的响应式流 就是reactive stream,也就是flow.其实和jdk8的stream没有一点关系.说白了就一个发布-订阅模式,一共只有4 ...
最新文章
- springboot整合mybatis增删改查(三):mybatis逆向工程
- 国内AI视频课程资源盘点
- 【性能优化】之 表分析及动态采样
- VS2010下的多线程窗口
- 【计算机心理学】先设计再实现 在实现中完善设计
- 建阳有计算机学校吗,建阳有哪几所中专技校
- centos下查看最大Socket连接数
- bzoj 3412: [Usaco2009 Dec]Music Notes乐谱
- 【BZOJ-1146】网络管理Network DFS序 + 带修主席树
- ptaa乘以b_pta程序设计平台-PTA,系统
- 怎样启动Windows系统呢
- java web在线题库管理系统(包含对学生,老师,课程,班级的管理)源码
- 两种常用电容式麦克风 MEMS还是ECM
- 鼠标上下滑轮时,来回乱跑
- 又猎一“狐”:一名外逃越南嫌疑人落网-网易
- 富途证券面试整理--前端
- vscode怎么设置动态背景
- UE5 Lumen实现分析
- 嵌入式是做什么的可就业方向是怎样的?
- Fast Rcnn 和Faster Rcnn
热门文章
- 华为交换机一次性进入多个接口_华为交换机交换机常用配置(认证、批量操作)...
- 高考计算机专业最低分数线是多少,2021最低多少分可以稳上二本 高考二本分数线是多少...
- 安卓判断服务器返回的状态码,关于服务器返回的十四种常见HTTP状态码详解
- 数据集转换_为什么LSTM看起来那么复杂,以及如何避免时序数据处理差异和混乱...
- 寻找亚马逊测评师邮箱_你真的会精细化运营吗?毫无保留地分享亚马逊运营小技巧,月入过万不是事...
- Python字符串常用方法(split,partition,maketrans,strip...)
- 杭州师范大学计算机信息学院调剂,考研调剂信息:杭州师范大学信息科学与工程学院...
- mysql mvcc undo_Mysql Innodb中undo-log和MVCC多版本一致性读 的实现
- linux 如何查看php的日志,Linux下apache日志分析与状态查看方法
- ansys icem cfd网格划分技术实例详解_新软速递极简的CFD软件in:Flux