承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

为啥Redis使用pipelining会更快

管理员 2023-07-21 08:01:52 互联网圈 0 ℃ 0 评论 1771字 收藏

为啥Redis使用pipelining会更快

为啥Redis使用pipelining会更快?

这是一个很考究细节的问题,大部份人都会说:由于减少了网络开消,那末,看以下例子:

import time

import redis

client = redis.Redis(decode_responses=True)
count = 10000


def no_pipelining():
  for i in range(count):
    client.set("test:nopp:{}".format(i), i, ex=100)


def with_pipelining():
  pp = client.pipeline()

  for i in range(count):
    pp.set("test:withpp:{}".format(i), i, ex=100)

  pp.execute()


if __name__ == "__main__":
  start = time.time()
  no_pipelining()
  mid = time.time()
  with_pipelining()
  end = time.time()

  print("no_pipelining: {} seconds; with_pipelining: {} seconds".format(mid - start, end - mid))

为何履行结果相差如此之大呢?

$ python test.py
no_pipelining: 2.3809118270874023 seconds; with_pipelining: 0.4370129108428955 seconds

由于这是连接本地的redis,所以网络开消非常小,固然,这里依然有一部份是网络开消影响,可是除此以外会不会还有其它影响因素呢? 答案是有,比如OS进程调度,当不使用管道时,Redis处理每一个命令之间是有时间空隙的,因此OS很有可能会将Redis进程转换为sleep状态, 然后运行其它程序,而使用pipelining时,可以提高CPU利用率,Redis空闲的时间没有那末多,因此,这也是pipelining速度会更快的 重要缘由之一。

ref:

https://redis.io/topics/pipelining

到此这篇关于为啥Redis使用pipelining会更快的文章就介绍到这了,更多相关Redis使用pipelining快内容请搜索之前的文章或继续浏览下面的相关文章希望大家以后多多支持!

文章来源:丸子建站

文章标题:为啥Redis使用pipelining会更快

https://www.wanzijz.com/view/65995.html

相关文章

Related articles

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信