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方式。代码的性能会有大幅度提升!
     */
  • 相关阅读:
    http简单demo
    启迪思维:循环链表
    数据表行列转换
    防止短时间内重复提交表单数据js约束
    ASP.NET2.0文件上传以及图片处理
    支付宝倒计时代码
    js 定时刷新页面
    C# 将cookiecontainer写到本地
    用C#生成随机中文汉字验证码的基本原理
    删除指定文件夹里的所有文件
  • 原文地址:https://www.cnblogs.com/tudou1223/p/13666981.html
Copyright © 2011-2022 走看看