博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis-pipeline
阅读量:4969 次
发布时间:2019-06-12

本文共 912 字,大约阅读时间需要 3 分钟。

Redis Pipelining

可以实现请求/响应服务器,以便即使客户端尚未读取旧响应,它也能够处理新请求。这样就可以将多个命令发送到服务器而无需等待回复,最后只需一步即可读取回复。

这被称为流水线技术,并且是几十年来广泛使用的技术。例如,许多POP3协议实现已经支持此功能,大大加快了从服务器下载新电子邮件的过程。

Redis从很早就开始支持流水线操作,因此无论您运行什么版本,都可以使用Redis进行流水线操作

单条指令:
在这里插入图片描述

多条指令

在这里插入图片描述

流水线技术不仅仅是为了减少由于往返时间而导致的延迟成本的一种方式,它实际上大大提高了您在给定Redis服务器中每秒可执行的总操作量

在这里插入图片描述

在这里插入图片描述
原始:

def raw():    start = time.time()    for x in range(100):        redis.lpush("user:xx:message", 'message:%s'%x)        redis.rpush('user:yy:message','haha%s'%x)    end = time.time()    print('耗时%0.2fs' % (end - start))  #耗时8.35s

使用pipeline:

def PipeLine():    with redis.pipeline() as p:        start = time.time()        for x in range(100):            p.lpush("user:xx:message", 'message:%s' % x).rpush('user:yy:message','haha%s'%x)        end = time.time()        print('耗时%0.2fs' % (end - start))  #耗时 0.25s

建议:

1. 注意每次pipeline携带的数据量2. pipeline每次只能作用在一个Redis节点上

转载于:https://www.cnblogs.com/donghaoblogs/p/10740984.html

你可能感兴趣的文章
MongoDB的简单使用
查看>>
hdfs 命令使用
查看>>
prometheus配置
查看>>
【noip2004】虫食算——剪枝DFS
查看>>
python 多进程和多线程的区别
查看>>
sigar
查看>>
iOS7自定义statusbar和navigationbar的若干问题
查看>>
[Locked] Wiggle Sort
查看>>
deque
查看>>
Setting up a Passive FTP Server in Windows Azure VM(ReplyCode: 227, Entering Passive Mode )
查看>>
c#中从string数组转换到int数组
查看>>
数据模型(LP32 ILP32 LP64 LLP64 ILP64 )
查看>>
java小技巧
查看>>
POJ 3204 Ikki's Story I - Road Reconstruction
查看>>
【BZOJ】2959: 长跑(lct+缩点)(暂时弃坑)
查看>>
iOS 加载图片选择imageNamed 方法还是 imageWithContentsOfFile?
查看>>
toad for oracle中文显示乱码
查看>>
SQL中Group By的使用
查看>>
错误org/aopalliance/intercept/MethodInterceptor解决方法
查看>>
两个表格中数据不用是一一对应关系--来筛选不同数据,或者相同数据
查看>>