Py学习  »  Redis

云Redis延迟原因(与MacBook Pro上的本地Redis相比)

mwal • 4 年前 • 476 次点击  

redis可以提供亚毫秒的响应时间。这是个很好的承诺。我在测试Heroku Redis 1ms 大约 8ms ,对于 zincrby 是的。我在用 microtime() 在php中结束调用。这个heroku redis(我使用的是免费计划)是一个共享实例,并且存在资源争用,因此我希望相同查询的响应时间会有所不同,而且它们肯定会发生变化。

我很好奇性能与通过自制安装在MacBook Pro上的Redis之间差异的原因。显然没有网络延迟。我好奇的是,这是否意味着任何云redis(即通过网络连接,比如在aws中连接)总是比在同一台物理机器上运行一个云服务器和redis慢得多,从而消除了网络延迟?

在这些云产品中也存在资源争用,除非选择了成本更高的私有服务器。

一些数字:我的本地macbook pro一直给出 0.2ms 相同的 津比 介于两者之间 千分之一秒 &安培 8毫秒 在赫鲁库雷迪斯。

是网络延迟造成的吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47491
 
476 次点击  
文章 [ 1 ]  |  最新文章 4 年前
mwal
Reply   •   1 楼
mwal    5 年前

不,可能不是。

1gbit/s网络的典型延迟约为 200us 是的。那是 0.2ms 是的。

此外,在aws中,您可能至少使用10gbps。

作为 this page 在redis手册中解释到,这两个环境之间延迟变化的主要原因几乎肯定是 intrinsic latency (有一个redis命令可以在任何特定系统上测试: redis-cli --intrinsic-latency 100 ,请参阅上面的手册页) 在Linux容器中运行 是的。

也就是说,网络延迟不是这里所看到的变化的主要原因。

这是一个清单(来自上面链接的redis手册页面)。

  • 如果你能负担得起的话,更喜欢物理机而不是虚拟机来托管服务器。
  • 不要系统地连接/断开与服务器的连接(对于基于web的应用程序尤其如此)。让你的关系长久 尽可能的。
  • 如果客户端与服务器位于同一主机上,请使用Unix域套接字。
  • 更喜欢在流水线上使用聚合命令(mset/mget)或具有可变参数的命令(如果可能)。
  • 如果可能的话,更喜欢在往返路线上使用流水线。
  • redis支持lua服务器端脚本,以覆盖不适合原始管道的情况(例如,当命令的结果 是以下命令的输入)。