redis 执行多条连续的命令的时候为了减少网络开销RTT,可以使用pipeline技术。
pipeline 与 原生批命令(mset, mget) 对比:
- 原生批命令是原子性,pipeline是非原子性
(原子性概念:一个事务是一个不可分割的最小工作单位,要么都成功要么都失败。原子操作是指你的一个业务逻辑必须是不可拆分的. 处理一件事情要么都成功,要么都失败,原子不可拆分) - 原生批命令一命令多个key, 但pipeline支持多命令(存在事务),非原子性
- 原生批命令是服务端实现,而pipeline需要服务端与客户端共同完成(客户端按顺序打包命令,redis服务端按顺序执行,然后将结果按顺序打包返回)