Redis中的Pipeline

一 概述

Redis中的Pipeline类似于Linux操作系统中的管道机制。

二 Redis中Pipeline原理

Redis基于请求/响应(Request/Response)模型,每个请求处理需要一一应答,当需要处理多条命令的时候,需要等待上一条命令应答之后,再执行之后命令的应答,此过程中不仅会存在很多来回交互的时间,而且会频繁的调用系统I/O,并发送网络请求。此时Pipeline就登场了,Pipeline支持一次执行多条命令,而不需要等待上一条命令的结果,客户端首先将需要执行的命令写入缓存中或者先汇总到一个文本中,然后一次性发送给Redis进行执行,这样Pipeline可以将I/O往返的时间缩减到一次,进而节省了多次I/O的往返时间,当然这需要Pipeline执行的指令之间没有相互依赖,如果存在依赖相关性,还是通过Pipeline进行分批发送。

三 Redis通过管道机制实现批量命令执行

批量生成redis测试数据
1.Linux Bash下面执行
  for((i=1;i<=20000000;i++));  do echo "set k$i v$i" >> /tmp/redisTest.txt; done;
  该命令会生成2千万条redis批量设置kv的语句(key=kn,value=vn)写入到/tmp目录下的redisTest.txt文件中
2.用vim去掉行尾的^M符号,使用方式如下::
  vim /tmp/redisTest.txt
    :set fileformat=dos #设置文件的格式,通过这句话去掉每行结尾的^M符号
    ::wq #保存退出
3.通过redis提供的管道--pipe形式,运行redis,传入文件的指令批量灌数据,需要花接近10分钟左右
  cat /tmp/redisTest.txt | 你主机redis的路径/redis-5.0.0/src/redis-cli -h 主机ip -p 端口号 --pipe

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值