Redis-Pipeline
一. 概念
Redis客户端和服务端往往部署在不同的机器上,客户端命令的执行分为发送命令,命令排队,执行命令,返回结果四个步骤。其中发送命令和返回结果的时间称为Round Trip Time(RTT 往返时间)。
当客户端有大量的命令时,会有大量的往返时间,如果有N条命令要执行,就会有N个往返时间。因此业界有种说法是Redis的性能瓶颈往往是网络。
Pipeline机制能够改善以上的情况,它将一组命令进行组装,通过一次RTT传送个Redis服务器并在命令全部执行完成后返回给客户端。
二. Pipeline的应用方式
2.1 redis-cli –pipeline
redis-cli的—pipeline选项实际就是使用pipeline机制
2.2 高级语言的redis客户端
三. 原生批量命令和pipeline对比
Pipeline可以模拟批量命令的执行效果,但是它和原生的批量命令还是有一定的区别,如下:
(1) 原生的批量命令时原子的,pipeline不是原子的
(2) 原生的批量命令时一个命令多个key,pipeline支持多个命令
(3) 原生的批量命令是redis服务端支持实现的,pipeline是需要redis服务端和客户端共同实现的。
四.Pipeline最佳实践
pipeline组装的命令个数不能过大,命令数量过大一方面会增加客户端的等待时间,另一方面会造成网络的阻塞,可以将一个包含大量命令的pipeline拆分成多次较小的pipeline完成。
知识小贴士:作者尽心运营的知识星球社群【请点击:简道源码&&架构分析 加入】(可添加运营同学WX:wx454876882)持续拉新中...,定期的jdk与核心框架源码解析,主流行业解决方案与架构设计资料查阅与下载尽在其中。帮助行业新人和有志于技术的专业人士体系化的学习源码与系统架构,获取业界知名技术峰会和厂商对外公布的主流业务场景的解决方案。同时这个星球也是一个社群,大家可以在社群中结识有识之士,共同探讨,答疑解惑。希望可以通过这个星球帮助大家每日进步一点点,一年持续365天,共勉
本星球 聚焦于Java源码分析,架构解析。低代码,可扩展和高可用架构设计。帮助你更好地学编程,欢迎想进步的同学!仅精品案例的资料整理即物超所值。让我们大家一起每日进步一点点~~,你可以:
1. 阅读星球专属的编程知识和优质文章
2.JAVA知识从点和面,深度挖掘。通过点,形成面。提升自身的技术广度和深度。
3. 加入星球专属交流群,帮你找到学习伙伴、获取每日优质文章推送等
4.业界优秀案例资料学习及下载
5. 和伙伴们一起学习打卡,增加动力,共同进步
6.工作、学习和方法论。如何提升软实力,比如写文章、画架构图、技术产品的营销、社区的运营等等。
7.招聘、面试和晋升。如何提前准备面试,有什么套路?如何提升硬实力,少走弯路?
8.提供简历优化服务哟。本人常年招聘,也就面试了1000+程序员和架构师~~
9.解答你的疑问。
10.每日进步一点点(最重要的一点): 让自己与众不同,每天学习1-2小时源码和架构知识,365天后再回首,1年前的自己可能是个SB吧。用通勤的时间让自己成长,让优秀变成一种习惯。