zoukankan      html  css  js  c++  java
  • 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方式。代码的性能会有大幅度提升!
     */
  • 相关阅读:
    第五章总结
    第二章总结
    第一章、基础知识总结
    实验 9 根据材料编程
    实验5
    汇编实验4
    实验 3 编程、编译、连接、跟踪
    实验 2 用机器指令和汇编指令编程
    汇编-实验一
    react面试笔录
  • 原文地址:https://www.cnblogs.com/tudou1223/p/13666981.html
Copyright © 2011-2022 走看看