Redis Pipeline管道技术
我们知道, Redis 服务器是以单线程的方式来处理客户端的网络 IO 请求的。如果每执行一次请求都要创建和断开一次连接,就会消耗过多的时间,导致执行效率降低。因此 Redis 提供了 Pipeline(管道技术),使用该技术可以一次性向服务器发送多条令,并返回多个执行结果。这样就节省了发送令和创建连接的时间,从而提高了执行效率。
注意:你需要在 Liunx 系统上使用 Pipeline 管道技术。
为什么需要Pipeline
Redis 是使用了客户端-服务器(C/S)模型和请求/响应协议的 TCP 服务器。这意味着发送一个请求会遵循以下步骤:客户端通常以阻塞的方式向服务器发送令,以获取服务器的响应。
服务器接收并处理令,然后将响应发送回客户端。
所谓阻塞式,指的是只有当客户端接收完当前令的响应信息,服务端才可以继续处理下一条指令,即一条一条的逐次执行。
不管令是以数据包的形式从客户端传输到服务端,还是客户端获得服务端的响应信息,这个过程都需要花费一定的时间,我把这个时间称为“往返延时”。因此当客户端执行一串请求的时候很容易看出延时对其性能造成的影响。
如果我们可以减少网络请求的次数,那么就可以大幅度提高 Redis 应用性能。Redis 的 Pipeline 就是这样一种技术,它能够把多次网络请求打包成一次请求发送给服务端,从而减少多次请求的“往返时间”。
注意,记住“速度不够,管道来凑”这句话,能够帮助你牢记管道技术的作用。
执行Pipeline语句
Pipeline 技术有其固定的语法格式,以下是在 Linux 终端执行的语句,具体令如下:
上述语句,首先使用 PING 令检查 Redis 是否正常工作,然后又分别使用了 SET/GET/INCR 令,以及 sleep 阻塞 2 秒,将这些令一次性的提交给 Redis 服务器,Redis 服务器在阻塞了 2 秒之后,一次性输出了所有令的响应信息。(echo -en "PING\r\n SET name www.biancheng\r\n GET name\r\n INCR num\r\n INCR num\r\n INCR num\r\n"; sleep 2)|nc localhost 6379
注意: 每个令字符串必须以 \r\n 结尾。于语句的 nc localhost 6379 是固定格式无需更改。
客户端一次性接收到所有令的执行结果,如下所示:
$(echo -en "PING\r\n SET name www.biancheng\r\n GET name\r\n INCR num\r\n INCR num\r\n INCR num\r\n"; sleep 2)|nc localhost 6379
+PONG
+OK
www.bianchneg网站站点" rel="nofollow" />
nc令,无法执行成功。
- 随机文章
- 核心危机(核心危机魔石合成攻略)
- 风儿(风儿轻轻的吹)
- 儿童教育文章(儿童教育)
- 光遇花手先祖位置(安卓光遇手花先祖)
- 广州4a广告公司(广州4a广告公司创意总监年薪)
- 抖音卡(抖音卡顿怎么解决)
- xboxones(xboxone手柄怎么配对主机)
- 陈武简历
- 帆船比赛(帆船比赛视频)
- 海猫鸣泣之时游戏(海猫鸣泣之时游戏在哪玩)
- 儋州市第二中学(儋州市第二中学录取分数线)
- 鬼泣5攻略(鬼泣5攻略第三关怎么跳)
- yy魔兽(yy魔兽世界)
- 国外成人游戏(国外成人游戏注册需要visa信用卡)
- 充值卡代理(充值卡代理加盟)
- 拆奶罩
- 东天目山(东天目山景区)
- 杭同(杭同培训中心怎么样)
- 大松电饭煲(美的大松电饭煲)
- 服饰加盟(服饰加盟店招商)
- 疯狂填字(疯狂填字5)
- 点对点短信息(点对点短信息费是什么意思)
- 观音普门品(观音普门品念诵全文)
- 河北省大运会(河北省大运会时间)
- 哈利波特官网(哈利波特官网在哪里)
- 骇客神条(骇客神条怎么辨别真假)
- 杜星霖(杜星霖图片)
- 查传倜(查传倜个人生活)
- 广州晓港公园(广州晓港公园正门图片)
- 钢筋等级符号(钢筋等级符号电脑怎么输入)
