00:00
各位同学大家好,接下来我们给大家介绍第七章red管道。好,它是个什么样的概念,解决了什么样的问题?来在开始讲解之前,那么请看杨哥的安排第六和第七章,听好他们两个处理问题、解决的问题的结果。有点类似,但是他们两个是截然不同的两个东西。第一句话,先明白它们俩的关系,就是雷锋和雷锋塔的关系,Java和javascript的关系,有点类似,但是是完全本质上不一样的东系,只是他们达到的效果表面上有点类似。那第二个问题,为什么会出现管道这个技术呢?那么来,我们先从面试题来啊,这些知识啊,为什么讲,绝对绝对不是胡说八道的。OK,好,那么同学们请看如何优化频繁命令玩法造成的性能瓶颈。
01:04
我先暂停一下录屏,同学们先思考一下这个题目,你听得懂吗?听得懂的同学请回答一下,把你们的答案写在对话框,感谢各位同学的回复。咱们先来说这个题的意思啊,Red呢是一种内存数据库高并发,那么这个时候它每秒钟可以承受8万的写操作和接近10万次以上的读操作,那这个时候哈,他快。比如说SK1V1 SK2V2set k3V3,那各位同学这个命令都很简单,快进快出,快进快出,可是这个时候就会导致什么123,那么我客服端这是个red客户端,发送一条命令给服务器,服务器处理了以后返回,那么一条命令就是发送处理返回两条,第二次发送处理返回,这样是不是频繁往返啊,而我这儿想干的事。
02:01
我想能不能。批处理打包一次性帮我搞定了,咱们就说这个set命令,同学们思考一下我们前面讲解过的string类型的命令什么样的情况?可以把三条命令。减少让他三合一,一波流带走一条搞定了,因为这个时候是不是我要跑三趟,就跟搬家一样,我搬家我当然希望一来一车一次性拿走搞定,那所以说同学们复习三个sat或者N个赛,那假设我这sat可以1万。V1万啥概念?这有1万次,我要交互1万次,当然累了。嗯,这个时候同学们三和1m sat k1V1 K2V2 K3V3回答我这个是不是就叫一次性搞定,相当于用一个命令,是不是解决了多条命令往返所产生的性能消耗的痛点?而这个m set就有点类似于我们待会要介绍的管道,说白了把所有命令排成一行,像流水线一样的去处理,这个就是我们ready pipeline这种技术所产生的原因。那么同学们这个就是red的管道,待会我们来说官网,好,那么接下来我们来看看问题的由来,给大家呢做一下粗浅的解析。
03:30
呢是一种客户端到服务器端请求响应的TCP服务,一般两个步骤,也就是说客户端向服务端发送命令分四步。命令排队,服务器执行返回结果,然后呢?中间的数据的连接通常以什么阻塞的模式等待服务端的响应,第二个服务端处理完命令就会将结果返回给客户端。大家请看客户端命令发送过来处理返回。那么。
04:02
就跟刚才一样,是不是SK1K2K3,上述两步叫。Round trip time,简称RTT,也就是来回,就跟你出差一样一来一回的往返时间,简称RTT。那么接下来我们可以看得出,如果同时需要执行大量的命令,刚才演示过了,对吧?三条K1到K1万对不对?那么这个时候就需要等待上一条命令结束应答以后再执行,这中间不仅多了很多次RTT往返时间,而且还频繁调用系统的IO。发送网络请求多次要调用red的读写方法,那么这样的话,系统会多次的从用户态转发到我们的内核态,这样对进程的上下文有比较大的影响,性能就不太好。OK,好,这是我们管道解决的痛点,以及它的问题的由来。那么接下来呢?来吧,我们的解决思路是这样的,Pipeline可以一次性的发送多条命令给服务器端同学们,OK,是不是这个就是三合一啊,一次只要一次打包处理,一次性来一辆车搬家,把所有行李搬完流水线,OK。那么这个时候服务端。
05:17
一次性的发送了多条命令给服务端,服务端一次处理完毕以后通过几条只有一次响应,一次搬家。一次性的将结果返回,减少客户端与red通信次数来实现降低往返延时实现。那么所以说管道实现的原理就是一个货拉拉,搬家公司的车就是一个队列,先进先出的特性,它可以保证我们数据的顺序性,来吧,请看客户端发送到哪,搬家公司的这个车,货拉拉全部搬上车,一次打包带走,给服务端搞定,OK,我相信一说也应该懂了。好,那么接下来我们来请看一下我们的官网,那么就这个地址,也就是我们在这儿啊,Ready这个文档在这,在这。
06:07
How to optimize如何智能的?RT时间BYP处理就是缩短优化round trip times往返时间,通过批处理的命令,OK,好,Being,那么来吧。它呢,就是为了解决RT的往返时间,仅仅是将命令打包一次性发送,对整个RA的执行不造成其他任何影响那么一句话。批处理命令的变种优化措施,可以一次性执行多条命令,类似于red原生批处理命令,比如说m get m set OK,好,那么同学们,这个就是我们red管道,它是什么?以及怎么引出来的?它解决了哪些痛点?那么接下来咱们案例说话。
我来说两句