redis 使用管道pipeline和不使用管道的性能对比
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和不使用管道的性能对比相关推荐
- python redis pipeline使用方法_Redis中的管道Pipeline操作
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 点击右侧关注,大数据开发领域最强公众号! 点击右侧关注,暴走大数据! Redis默认每次执行请求都 ...
- Redis的管道pipeline
本文来说下Redis的管道pipeline 文章目录 概述 Redis管道技术 SpringDataRedis使用管道 使用管道技术的注意事项 本文小结 概述 Redis提供了一个称为管道(Pipel ...
- [BTS06]BizTalk2006 SDK阅读笔记(五) 管道-Pipeline
管道 前面提到过,Adapter只完成从数据文件的输入输出,但不会对数据进行一些其它特殊处理! 比如,File Adapter只用来完成文件的读取或写入,但它不会去问用户,要处理的数据是什么格式.也就 ...
- jenkins~管道Pipeline里使用公用类库
Pipeline使用了groovy语法,同时可以使用所有jenkins插件在groovy里进行调用,可以说通过UI可以实现的功能使用pipeline也可以实现,这一点我在上一篇文章里已经说明,今天主要 ...
- Boost:基于Boost的管道pipeline通信
Boost:基于Boost的管道pipeline通信 实现功能 C++实现代码 实现功能 boost::asio模块,基于Boost的管道pipeline通信 C++实现代码 #include < ...
- Redis进阶实践之十八 使用管道模式提高Redis查询的速度
Redis进阶实践之十八 使用管道模式提高Redis查询的速度 原文:Redis进阶实践之十八 使用管道模式提高Redis查询的速度 一.引言 学习redis 也有一段时间了,该接触的也差不多了.后来 ...
- [并发并行]_[线程模型]_[Pthread线程使用模型之一管道Pipeline]
场景 1.经常在Windows, MacOSX 开发C多线程程序的时候, 经常需要和线程打交道, 如果开发人员的数量不多时, 同时掌握Win32和pthread线程 并不是容易的事情, 而且使用Win ...
- Spark机器学习管道 - Pipeline
Spark机器学习管道 - Pipeline 一.实验目的 二.实验内容 三.实验原理 四.实验环境 五.实验步骤 5.1 启动Spark集群和Zeppelin服务器. 5.2 使用管道创建一个小型工 ...
- Redis事务与Pipeline功能
一.Redis事务 Redis中的事务(transaction)是一组命令的集合,对事物的支持有限,不能保证原子性,在集群分片环境中,由于不同key可能存在不同的机器上,所以造成事务无法使用(可以简单 ...
最新文章
- python库pickle的用法
- web.config配置文件详解
- layui表格合并单元格多表_layui动态表格之合并单元格
- BugKuCTF 杂项 又一张图片,还单纯吗
- jMenu 不添加item 直接自己添加监听actionPerformed不行mousePressed可以
- MySQL学习笔记03-MySQL的安装 .
- (转)CocoaPods:管理Objective-c 程序中各种第三方开源库关联
- 随便选一张扑克牌_扑克牌魔术手法教学,简单易学的纸牌魔术,三分钟让你成为大师...
- Linux中apt install的lock问题
- 部署Nginx服务器
- LeetCode 994. 腐烂的橘子
- k8s pod里访问不到外部ip_安全公告:影响所有K8s版本的设计缺陷
- [luogu3369]普通平衡树(替罪羊树模板)
- 190706每日一句
- Proteus器件查找
- 计算机基础和web相关知识点
- 暴走欧洲之在德国的反思
- 斐讯设备远程控制教程(以K3、N1为例)
- Java如何创建参数个数不限的函数
- 公司新来了个软件测试工程师,一副毛头小子的样儿,哪想到是新一代卷王...
热门文章
- C语言写的程序如何控制计算机硬件
- matlab转向梯形优化设计,转向梯形优化设计matlab程序
- freetds mysql_apache+mysql+php+gd+freetds
- 1.12.Flink Kafka-Connector详解、Consumer消费策略设置、动态加载Topic、Consumers Offset 自动提交、Producer、容错等
- SpringBoot内部配置:“application.properties配置”和”使用XML配置”,读取属性文件中的内容,日志配置,Profile配置(学习:SpringBoot实战)
- 基于某网站的信息爬取与保存
- python最大公约数和最小公倍数_python怎么求最大公约数和最小公倍数
- I2C原理及应用实例
- (Linux 2.6设备管理机制)kobject和kset
- 虚拟桌面启动后自动全屏