- 可以一次性发送多条命令发送给服务端,服务端依次处理完后,通过一次响应将全部结果返回,减少多次交互,不影响命令执行 # 产生原因 - 客户端向服务端发送命令分四步(发送命令-命令排队-命令执行-返回结果),并监听socket返回,通常以阻塞模式等待服务器响应。服务端处理命令,并将结果返回给客户端,这两步称为RTT - 需要执行大量命令时,需要等待上一条命令应答后在执行,中间多个很多RTT,且频繁调用系统IO,发送网络请求 # 特性 - 非原子性的 - 支持批量不同命令 - 服务端与客户端功能完成 # 注意 - 缓冲的指令只是会一次执行,不支持原子性,如果执行中指令发生异常,将会继续执行后续的指令 - 使用pipeline组装的命令个数不能太多,不然数据量过大客户端阻塞使用可能过久,同时服务端此时也被迫回复一个队列答复,占用很多内存