Redis-pipeline

xiaoxiao2021-02-28  87

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完成。

转载请注明原文地址: https://www.6miu.com/read-27687.html

最新回复(0)