redis pipline与multi
作者:互联网
<?php $redis = new Redis; $redis->pconnect("127.0.0.1",6379); //pipline 模式 不保证原子性 $pipline = $redis->multi(Redis::PIPELINE); //使用redis操作 这里的操作实际上是把命令记录到客户端缓冲中 $pipline->set("a",1); $pipline->set("b",2); $pipline->set("c",3); $pipline->set("d",4); $pipline->set("e",5); $pipline->del('b'); //执行 一次性发送命令到服务器 所以等于1次网络开销 $pipline->exec(); //multi 模式 $pipline = $redis->multi();//这里默认是multi模式 所以不传参即可 //使用redis操作 这里的操作会把命令一个个的传送到服务端 可以理解为放进一个事务块的队列里 $pipline->set("f",1); $pipline->set("g",2); $pipline->set("h",3); $pipline->set("j",4); $pipline->set("k",5); $pipline->del('k'); //执行 之前记录的事务块里所有命令 但是因为之前发送的原因 其实是有5次网络开销 $pipline->exec(); $redis->close(); /** * 摘抄一段 如何做选择 * Redis::MULTI方式会将命令逐条发给redis服务端。只有在需要使用事务时才选择Redis::MULTI方式,它可以保证发给redis的一系列命令以原子方式执行。但效率相应也是最低的。 * Redis::PIPELINE方式,可以将一系列命令打包发给redis服务端。如果只是为了一下执行多条redis命令,无需事物和原子性,那么应该选用Redis::PIPELINE方式。代码的性能会有大幅度提升! */
标签:multi,set,redis,Redis,命令,pipline 来源: https://www.cnblogs.com/tudou1223/p/13666981.html