博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redis使用管道pipeline提升批量操作性能(php演示)
阅读量:6904 次
发布时间:2019-06-27

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

Redis是一个TCP服务器,支持请求/响应协议。 在Redis中,请求通过以下步骤完成:

  • 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应。
  • 服务器处理命令并将响应发送回客户端。

如果需要一次执行多个redis命令,以往的方式需要发送多次命令请求,有redis服务器依次执行,并返回结果,

为了解决此类问题,设计者设计出了redis管道命令:

  • 客户端可以向服务器发送多个请求,而不必等待回复,并最终在一个步骤中读取回复,从而大大增加了协议性能

做了测试,使用pipeline的时长为603.4ms,不使用则为10716.9ms,差距有18倍之多!

以下是代码:

G('t');// redis::pipeline(); for ($i=0; $i < 100000 ; $i++) { redis::set("test_{
$i}", pow($i, 2)); redis::get('test_{$i}'); } redis::exec(); $this->G('t','r'); } public function G($start,$end='',$dec=4) { static $_info = array(); if (!empty($end)) { if(!isset($_info[$end])) $_info[$end] = microtime(TRUE); $sconds = number_format(($_info[$end]-$_info[$start]), $dec) * 1000; echo "{
$sconds}ms
"; } else { $_info[$start] = microtime(TRUE); } }}

 

转载于:https://www.cnblogs.com/lamp01/p/8448931.html

你可能感兴趣的文章
面试题目集锦-bash篇
查看>>
我的友情链接
查看>>
Seliux安全配置
查看>>
Vmware vSphere 6.0之安装 vCenter Server Appliance
查看>>
GlusterFS客户端进程分析
查看>>
kvm宿主机物理内存预留方案
查看>>
eclipse的products插件启动
查看>>
mysql主从复制配置篇
查看>>
关于通过vmware安装windows8的几个问题及解决--无人参与应答文件包含的产品密钥无效...
查看>>
SQL 结果缓存
查看>>
淘宝 DataX 产品说明
查看>>
NetSuite软件试用后能为企业所带来的改善和进步!
查看>>
Oracle Data Guard概念
查看>>
keepalived 中使用的命令
查看>>
201621123085 《Java程序设计》第1周学习总结
查看>>
Git的学习笔记(二)
查看>>
不会再爱
查看>>
ubuntu下安装mysql
查看>>
在jmeter测试mysql中如何一次运行多条sql语句
查看>>
RPC框架性能基本比较测试
查看>>