当前位置:网站首页>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 .
边栏推荐
- 华泰证券是国家认可的券商吗?开户安不安全?
- Redis入门完整教程:哈希说明
- 醒悟的日子,我是怎么一步一步走向软件测试的道路
- Locust performance test - environment construction and use
- PMO: compare the sample efficiency of 25 molecular optimization methods
- 质量体系建设之路的分分合合
- 攻防世界 misc 进阶区 2017_Dating_in_Singapore
- Practice and principle of PostgreSQL join
- 9 - 类
- MYSQL架构——逻辑架构
猜你喜欢
安装人大金仓数据库
Close system call analysis - Performance Optimization
UML diagram memory skills
质量体系建设之路的分分合合
Set up a website with a sense of ceremony, and post it to 1/2 of the public network through the intranet
Persistence mechanism of redis
Why is Dameng data called the "first share" of domestic databases?
The new version judges the code of PC and mobile terminal, the mobile terminal jumps to the mobile terminal, and the PC jumps to the latest valid code of PC terminal
Sobel filter
Breakpoint debugging under vs2019 c release
随机推荐
SPSS安装激活教程(包含网盘链接)
Analysis of the self increasing and self decreasing of C language function parameters
NFT insider 64: e-commerce giant eBay submitted an NFT related trademark application, and KPMG will invest $30million in Web3 and metauniverse
The sandbox has reached a cooperation with digital Hollywood to accelerate the economic development of creators through human resource development
10 schemes to ensure interface data security
Business is too busy. Is there really no reason to have time for automation?
Advanced area a of attack and defense world misc Masters_ good_ idea
9 - 类
Shell script implements application service log warehousing MySQL
[machine learning] handwritten digit recognition
Wake up day, how do I step by step towards the road of software testing
Redis入门完整教程:Bitmaps
How to reset the password of MySQL root account
Unity Xiuxian mobile game | Lua dynamic sliding function (specific implementation of three source codes)
[Lua] Int64 support
【室友用一局王者荣耀的时间学会了用BI报表数据处理】
Three stage operations in the attack and defense drill of the blue team
The Sandbox 和数字好莱坞达成合作,通过人力资源开发加速创作者经济的发展
串口数据帧
leetcode 72. Edit Distance 编辑距离(中等)