Redis管道
2018-06-07 本文已影响0人
守住阳光
客户端和Redis使用TCP协议连接。不论是客户端向redis发送命令还是redis向客户端返回命令的执行结果,都需要经过网络传输,这两个部分的总耗时成为往返时延。根据网络性能不同,往返时延也不同,大致说到本地回环地址(loop back address)的往返时延在数量级上相当于redis处理一条简单命令的时间。如果执行较多的命令,每个命令往返时延累加起来对性能还是有一定的影响的。
在执行多个命令时每条命令都需要等待上一条命令执行完(即收到redis的返回结果)才能执行,即使命令不需要上一条命令的执行结果。redis的底层管道通信协议对管道提供了支持。通过管道可以一次发送多条命令并在执行完后一次将结果返回,当一组命令中每条命令不依赖于之前命令的执行结果时就可以将这组命令通过管道一起发出。管道通过减少客户端与redis的通信次数来降低往返时延累计值的目的。