• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    为啥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不是一直号称单线程效率也很高吗,为什么又采用多线程了?
    • redis单线程快的原因和原理
    • Redis为什么快如何实现高可用及持久化
    • Redis凭啥可以这么快
    • Redis高效率原因及数据结构分析
    上一篇:基于Redis+Lua脚本实现分布式限流组件封装的方法
    下一篇:通过kubesphere部署redis的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    为啥Redis使用pipelining会更快 为啥,Redis,使用,pipelining,