PHP-Redis管道技术

Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:

客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。

服务端处理命令,并将结果返回给客户端。

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。

Redis的管道(Pipelining)操作是一种异步的访问模式,一次发送多个指令,不同步等待其返回结果。这样可以取得非常好的执行效率。

$redis = new Redis();

$redis->connect('localhost',6379);

$redis->auth("1234567890");

$pipe=$redis->multi(Redis::PIPELINE);

for($i= 0 ; $i<  10000 ; $i++) {

       $pipe->set("key::$i",str_pad($i, 4,'0', 0));

       $pipe->get("key::$i");

}

$replies=$pipe->exec();

print_r($replies);

正确使用pipeline对性能的提升十分明显。我们曾经某个后台应用,逐个处理大约100万条记录需要几十分钟,经过pileline压缩请求数量后,最后时间缩小到20秒左右。做之前能预计提升性能,但是没想到提升如此巨大。(来自网络)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,092评论 19 139
  • 本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概...
    kelgon阅读 61,458评论 23 625
  • 文章转摘自:http://www.cnblogs.com/mushroom/p/4738170.html 性能相关...
    奋斗live阅读 11,867评论 2 10
  • 转载:Redis性能问题排查解决手册(七) 阅读目录: 性能相关的数据指标 内存使用率used_memory 命令...
    meng_philip123阅读 9,707评论 0 30
  • 人们看见这个小女人挺着肚子踮着脚,尽力去拽那槐树远扬的枝。槐花开,又香又甜。小女人满口大嚼。又呕了一地。 夜的河流...
    铭玥咏全阅读 1,166评论 0 0

友情链接更多精彩内容