redis的管道技术

那一切都是种子,只有经过埋葬,才有生机。

简介

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

  • 客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。
  • 服务端处理命令,并将结果返回给客户端。

Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。从而节省网络传输时间, 这在一次需要执行大量命令时特别有用;

使用

phpredis 支持操作数组,同时操作多个 key,操作 redis 时,

1
$obj->get([]), $obj->del([])

而 predis 不支持,可以通过 pipeline 来执行

1
2
3
4
5
Redis::pipeline(function ($pipe) {
for ($i = 0; $i < 1000; $i++) {
$pipe->set("key:$i", $i);
}
});

其他

关于phpredis和predis的区别, 请参考:
Predis和Phpredis的区别