4. 性能测试
下表给出了不同网络环境下非 Pipeline 和 Pipeline 执行 10000 次 set 操作的效果:
网络 延迟 非Pipeline Pipeline 本机 0.17ms 573ms 134ms 内网服务器 0.41ms 1610ms 240ms 异地机房 7ms 78499ms 1104ms
因测试环境不同可能会得到不同的测试数据,本测试 Pipeline 每次携带 100 条命令。
我们可以从上表中得出如下结论:
Pipeline 执行速度一般比逐条执行要快。 客户端和服务端的网络延时越大,Pipeline 的效果越明显。5. 批量命令与Pipeline对比
下面我们看一下批量命令与 Pipeline 的区别:
原生批量命令是原子的,Pipeline 是非原子的。 原生批量命令是一个命令对应多个 key,Pipeline 支持多个命令。 原生批量命令是 Redis 服务端支持实现的,而 Pipeline 需要服务端和客户端的共同实现。6. 注意点
使用 Pipeline 发送命令时,每次 Pipeline 组装的命令个数不能没有节制,否则一次组装的命令数据量过大,一方面会增加客户端的等待时间,另一方面会造成一定的网络阻塞,可以将一次包含大量命令的 Pipeline 拆分成多个较小的 Pipeline 来完成。
好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对七叶笔记的支持。