redis的pipeline操作

1、简单描述

  redis是一个CS模式的tcp的server,一个client发起了命令操作的请求,然后会阻塞等待服务端的处理和数据的返回。基本上一个命令请求就是2个报文,一去一回。如果多个命令,每次都是2个报文,这样网络传输的开销不小,在批量命令处理的时候,pipeline就可以减少这种网络开销而提升性能。假如client一个命令一个命令地发,一秒之内只能执行4个命令的,用了pipeline,一秒可以执行成千个甚至上万个命令。

2、具体操作(基于4.0.1版本)

1)pipeline命令:开启管道

2)exec命令:执行管道中的命令

3、小结

1)管道的优点是多个命令可以一次性发送到服务端,服务端处理完一次性再返回所有结果;

2)管道的缺点是如果命令太多,那么命令处理完的结果会先保存在服务端的缓存中然后再返回,会对服务端造成压力;

3)管道的命令不是原子操作,就是说命令执行中可能会穿插其他client的命令操作,如果对于命令的执行顺序有强烈要求的,可能pipeline不支持,可以改用mulit事务。

4)管道的性能比不用管道要高10倍以上。使用事务会比不使用慢一些。

原文地址:https://www.cnblogs.com/guangye/p/7444933.html