predis3.php代码如下所示:

<?php 
include('runtime.php');
try{
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);

$runtime= new runtime;
$runtime->start();
$redis->pipeline();
for ($i=0; $i < 100000 ; $i++) { 
   $redis->set("test_{$i}", pow($i, 2));
   $redis->get('test_{$i}');
}
$redis->exec();
$runtime->stop();
$runtime->spent($echo = true,'管道执行时间');
$runtime->clear();
//平常执行的redis
$runtime= new runtime;
$runtime->start();
for ($i=0; $i < 100000 ; $i++) {
   $redis->set("test_{$i}", pow($i, 2));
   $redis->get('test_{$i}');
}
$runtime->stop();
$runtime->spent($echo = true,'平常的redis执行时间');
$runtime->clear();

//var_dump($result);
}catch (\Exception $e) {
    echo $e->getMessage();
}
?>
runtime.php代码如下所示:

<?php
/**
 * PHP脚本执行时间计算
 */
class runtime
{
    public $StartTime = 0;
    public $StopTime = 0;

public function get_microtime()
    {
        list($usec, $sec) = explode(' ', microtime());
        return ((float)$usec + (float)$sec);
    }
    public function start()
    {
        $this->StartTime = $this->get_microtime();
    }
    public function stop()
    {
        $this->StopTime = $this->get_microtime();
    }
    public function spent($echo=false,$title='') {
      $spent = sprintf('%.4f',round(($this->StopTime-$this->StartTime)*1000,1));
      if($echo) {
         echo $title."{$spent}毫秒<br/>";
      }else{
         return $spent;
      }
    }

public function clear()
    {
        $this->StartTime = 0;
        $this->StopTime = 0;
    }
    
}

#测试脚本代码
/*
$runtime= new runtime;
$runtime->start();
$a = 0;
for($i=0;$i<=10000;$i++) {
  $a = $i*$a;
}
$runtime->stop();
$runtime->spent($echo = true,'执行时间');
$runtime->clear();
*/

?>

执行时间对比如下所示:

redis 使用管道pipeline和不使用管道的性能对比相关推荐

  1. python redis pipeline使用方法_Redis中的管道Pipeline操作

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 点击右侧关注,大数据开发领域最强公众号! 点击右侧关注,暴走大数据! Redis默认每次执行请求都 ...

  2. Redis的管道pipeline

    本文来说下Redis的管道pipeline 文章目录 概述 Redis管道技术 SpringDataRedis使用管道 使用管道技术的注意事项 本文小结 概述 Redis提供了一个称为管道(Pipel ...

  3. [BTS06]BizTalk2006 SDK阅读笔记(五) 管道-Pipeline

    管道 前面提到过,Adapter只完成从数据文件的输入输出,但不会对数据进行一些其它特殊处理! 比如,File Adapter只用来完成文件的读取或写入,但它不会去问用户,要处理的数据是什么格式.也就 ...

  4. jenkins~管道Pipeline里使用公用类库

    Pipeline使用了groovy语法,同时可以使用所有jenkins插件在groovy里进行调用,可以说通过UI可以实现的功能使用pipeline也可以实现,这一点我在上一篇文章里已经说明,今天主要 ...

  5. Boost:基于Boost的管道pipeline通信

    Boost:基于Boost的管道pipeline通信 实现功能 C++实现代码 实现功能 boost::asio模块,基于Boost的管道pipeline通信 C++实现代码 #include < ...

  6. Redis进阶实践之十八 使用管道模式提高Redis查询的速度

    Redis进阶实践之十八 使用管道模式提高Redis查询的速度 原文:Redis进阶实践之十八 使用管道模式提高Redis查询的速度 一.引言 学习redis 也有一段时间了,该接触的也差不多了.后来 ...

  7. [并发并行]_[线程模型]_[Pthread线程使用模型之一管道Pipeline]

    场景 1.经常在Windows, MacOSX 开发C多线程程序的时候, 经常需要和线程打交道, 如果开发人员的数量不多时, 同时掌握Win32和pthread线程 并不是容易的事情, 而且使用Win ...

  8. Spark机器学习管道 - Pipeline

    Spark机器学习管道 - Pipeline 一.实验目的 二.实验内容 三.实验原理 四.实验环境 五.实验步骤 5.1 启动Spark集群和Zeppelin服务器. 5.2 使用管道创建一个小型工 ...

  9. Redis事务与Pipeline功能

    一.Redis事务 Redis中的事务(transaction)是一组命令的集合,对事物的支持有限,不能保证原子性,在集群分片环境中,由于不同key可能存在不同的机器上,所以造成事务无法使用(可以简单 ...

最新文章

  1. python库pickle的用法
  2. web.config配置文件详解
  3. layui表格合并单元格多表_layui动态表格之合并单元格
  4. BugKuCTF 杂项 又一张图片,还单纯吗
  5. jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
  6. MySQL学习笔记03-MySQL的安装 .
  7. (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联
  8. 随便选一张扑克牌_扑克牌魔术手法教学,简单易学的纸牌魔术,三分钟让你成为大师...
  9. Linux中apt install的lock问题
  10. 部署Nginx服务器
  11. LeetCode 994. 腐烂的橘子
  12. k8s pod里访问不到外部ip_安全公告:影响所有K8s版本的设计缺陷
  13. [luogu3369]普通平衡树(替罪羊树模板)
  14. 190706每日一句
  15. Proteus器件查找
  16. 计算机基础和web相关知识点
  17. 暴走欧洲之在德国的反思
  18. 斐讯设备远程控制教程(以K3、N1为例)
  19. Java如何创建参数个数不限的函数
  20. 公司新来了个软件测试工程师,一副毛头小子的样儿,哪想到是新一代卷王...

热门文章

  1. C语言写的程序如何控制计算机硬件
  2. matlab转向梯形优化设计,转向梯形优化设计matlab程序
  3. freetds mysql_apache+mysql+php+gd+freetds
  4. 1.12.Flink Kafka-Connector详解、Consumer消费策略设置、动态加载Topic、Consumers Offset 自动提交、Producer、容错等
  5. SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)
  6. 基于某网站的信息爬取与保存
  7. python最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数
  8. I2C原理及应用实例
  9. (Linux 2.6设备管理机制)kobject和kset
  10. 虚拟桌面启动后自动全屏