Redis管道技术(PHP Redis管道用法)

Redis管道技术

一、Redis管道技术原理

  • Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:
    1. 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
    2. 服务端处理命令,并将结果返回给客户端。
  • Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

二、管道技术的优势

  • 管道技术最显著的优势是提高了 redis 服务的性能。

三、查看 redis 管道,只需要启动 redis 实例

$(echo -en "PING\r\n SET runoobkey redis\r\nGET runoobkey\r\nINCR visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379

+PONG
+OK
redis
:1
:2
:3

四、php脚本性能对比管道与非管道

  • 非管道脚本
<?php
$time = time();
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
for ($i = 0; $i < 5000; $i++) {
    $key = "keynip::{$i}";
    $redis->set($key, str_pad($i, 2, '0', 0));
}
echo (time() - $time);
  • 管道脚本
<?php
$time = time();
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$pipe = $redis->multi(Redis::PIPELINE);
for ($i = 0; $i < 5000; $i++) {
    $key = "keypip::{$i}";
    $pipe->set($key, str_pad($i, 2, '0', 0));
}
$result = $pipe->exec();
echo (time() - $time);

五、性能分析

  • 官方提供的数据图片:在这里插入图片描述

  • 官方提供的数据结果: 快5倍(using pipelining, we improved the transfer by a factor of five)

资料参考:官方redis管道技术

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值