当前位置:网站首页>A complete tutorial for getting started with redis: Pipeline
A complete tutorial for getting started with redis: Pipeline
2022-07-04 22:53:00 【Gu Ge academic】
3.3.1 Pipeline Concept
Redis The client execution of a command is divided into the following four processes :
1) dispatch orders
2) Order to line up
3) Command execution
4) Return results
among 1)+4) be called Round Trip Time(RTT, Round trip time ).
Redis Batch operation commands are provided ( for example mget、mset etc. ), Save effectively RTT. but
Most commands do not support batch operations , For example, to perform n Time hgetall command , did not
mhgetall Command exists , Need to consume n Time RTT.Redis The client and server of may be deployed in different places
On the same machine . For example, the client is in Beijing ,Redis The server is in Shanghai , The straight-line distance between the two places is about
1300 km , that 1 Time RTT Time =1300×2/(300000×2/3)=13 millisecond ( Light in a vacuum
The transmission speed is per second 30 Thousands of kilometers , Let's say the fiber is at the speed of light 2/3), So the client is 1 second
Can only be carried out in about 80 The next order or so , This and Redis The high concurrency and high throughput of
Chi .
Pipeline( Assembly line ) The mechanism can improve the above problems , It can combine a group of Redis Order to enter
Row assembly , Through a RTT Transferred to the Redis, Will this group again Redis The execution results of commands are in order
Return to the client , chart 3-5 Is not used Pipeline Yes n Bar command , The whole process needs n Time
RTT.
chart 3-6 For the use of Pipeline Yes n subcommand , The whole process needs 1 Time RTT.
Pipeline It's not a new technology or mechanism , Many technologies have been used . and RTT
In different network environments, there will be different , For example, the machine room and the same machine will be faster , Cross machine room and cross region
It will be slow .Redis The actual execution time of the command is usually at the microsecond level , That's why there is Redis sex
The bottleneck is the network .
redis-cli Of --pipe Option is actually using Pipeline Mechanism , For example, the following operation will set
hello world and incr counter Two commands assemble :
echo -en '*3\r\n$3\r\nSET\r\n$5\r\nhello\r\n$5\r\nworld\r\n*2\r\n$4\r\nincr\r\
n$7\r\ncounter\r\n' | redis-cli --pipe
But most developers prefer to use... In high-level language clients Pipeline, At present, the
part Redis All clients support Pipeline, The first 4 In chapter, we will introduce how to pass Java Of Redis customer
Home end Jedis Use Pipeline function .
3.3.2 Performance testing
surface 3-1 The non Pipeline and Pipeline perform 10000 Time set operation
The effect of , Two conclusions can be drawn as follows :
·Pipeline Execution speed is generally faster than item by item execution .
· The greater the network delay between the client and the server ,Pipeline The more obvious the effect of .
Due to the different test environment, the specific number may be different , This test Pipeline Carry... Every time
belt 100 Bar command .
3.3.3 Native batch command and Pipeline contrast
have access to Pipeline Simulate the effect of batch operation , But when using it, we should pay attention to its relationship with the original
The difference between generating batch commands , It includes the following points :
· The native batch command is atomic ,Pipeline It's non atomic .
· A native batch command is a command that corresponds to multiple key,Pipeline Supports multiple commands .
· The native batch command is Redis The server supports the implementation of , and Pipeline The server and the customer are required
The common implementation of the end .
3.3.4 Best practices
Pipeline Although easy to use , But every time Pipeline The number of assembly commands cannot be unlimited , no
One time assembly Pipeline Too much data , On the one hand, it will increase the waiting time of the client , The other side
It can cause a certain amount of network congestion , It's possible to put a Pipeline Split into multiple
smaller Pipeline To complete .
Pipeline Only one can be operated Redis example , But even in distributed Redis Scene , Can also be
As an important optimization means of batch operation , For details, see page 11 Chapter .
边栏推荐
- Summary of index operations in mongodb
- Feature scaling normalization
- 剑指Offer 68 - II. 二叉树的最近公共祖先
- [machine learning] handwritten digit recognition
- Attack and defense world misc advanced grace-50
- 【室友用一局王者荣耀的时间学会了用BI报表数据处理】
- 华泰证券是国家认可的券商吗?开户安不安全?
- Analog rocker controlled steering gear
- Attack and Defense World MISC Advanced Area Erik baleog and Olaf
- [roommate learned to use Bi report data processing in the time of King glory in one game]
猜你喜欢
Redis入门完整教程:列表讲解
Unity修仙手游 | lua动态滑动功能(3种源码具体实现)
Google Earth Engine(GEE)——Tasks升级,实现RUN ALL可以一键下载任务类型中的所有影像
[machine learning] handwritten digit recognition
质量体系建设之路的分分合合
UML diagram memory skills
Business is too busy. Is there really no reason to have time for automation?
Redis入门完整教程:初识Redis
Persistence mechanism of redis
Serial port data frame
随机推荐
【烹饪记录】--- 青椒炒千张
Logo special training camp Section IV importance of font design
Redis入门完整教程:哈希说明
The overview and definition of clusters can be seen at a glance
Sword finger offer 65 Add without adding, subtracting, multiplying, dividing
特征缩放 标准化 归一化
Redis入门完整教程:有序集合详解
POM in idea XML dependency cannot be imported
Mongodb aggregation operation summary
Attack and defense world misc advanced area Hong
Introducing QA into the software development lifecycle is the best practice that engineers should follow
Detailed explanation of flask context
啃下大骨头——排序(二)
关于栈区、堆区、全局区、文字常量区、程序代码区
Why is Dameng data called the "first share" of domestic databases?
[try to hack] wide byte injection
攻防世界 MISC 进阶区 Ditf
Unity-VScode-Emmylua配置报错解决
Redis入门完整教程:键管理
Logo Camp d'entraînement section 3 techniques créatives initiales