PHP中Redis管道
Redis是一个TCP服务器,支持请求/响应协议。 在Redis中,请求通过以下步骤完成:
客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应。
服务器处理命令并将响应发送回客户端。
如果需要一次执行多个redis命令,以往的方式需要发送多次命令请求,有redis服务器依次执行,并返回结果,
为了解决此类问题,设计者设计出了redis管道命令:
客户端可以向服务器发送多个请求,而不必等待回复,并最终在一个步骤中读取回复,从而大大增加了协议性能
代码示例:
redis版本是
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$pipe = $redis->multi(Redis::PIPELINE);
for ($i = 0; $i < 3; $i++) {
$key = "key::{$i}";
print_r($pipe->set($key, str_pad($i, 2, '0', 0)));
echo PHP_EOL;
print_r($pipe->get($key));
echo PHP_EOL;
}
$result = $pipe->exec();
print_r($result);
参数说明:
Redis::MULTI或Redis::PIPELINE. 默认是 Redis::MULTI
Redis::MULTI:将多个操作当成一个事务执行
Redis::PIPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证
结果如下图,可以看出每次执行set/get命令,并没有被redis服务器立即执行,执行结果被放在了最后的result中
---------------------
作者:陌上青苔
来源:CSDN
原文:https://blog.csdn.net/weijianfengyu/article/details/62891813?utm_source=copy
版权声明:本文为博主原创文章,转载请附上博文链接!
来源:https://blog.csdn.net/weijianfengyu/article/details/62891813
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
