redis和mysql的数据写入测试
2012-02-02 18:04
447 查看
1)PHP 写入mysql数据的代码
结果:
使用PHP 给mysql 插入10W条数据时的状态:执行时间是70秒
使用PHP 给mysql 插入50W条数据时的状态:执行时间是335秒
2) 安装phpredis模块
1. 在https://github.com/owlient/phpredis 下载nicolasff-phpredis-2.1.3-167-ga5e53f1.zip
解压 unzip –q nicolasff-phpredis-2.1.3-167-ga5e53f1.zip
2. cd phpredis
/usr/local/php/bin/phpize 这个phpize是安装php模块的
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
确认是否生成redis扩展库:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
在php.ini中添加extension=redis.so
重新加载php /etc/init.d/php-fpm reload
3. php代码测试
<?php
$redis = new Redis();
$redis->connect('10.1.0.169',6379);
$redis->set('test','hello world!');
echo $redis->get('test');
?>
输出hello world!
3) PHP 写入redis数据的代码
rpush.php代码:
$redis = new Redis();
$redis->connect('10.1.0.169',6379);
$redis->rpush("order","$ins");
lpop.php代码:
$num=$redis->llen("order");
while ($num) {
$ins=$redis->lpop("order");
mysqli_query($mysqli,$ins);
$num=$redis->llen("order");
}
结论:
使用PHP 给redis插入10W条数据时的状态:
执行时间是24秒
使用redis 给mysql插入10W条数据时的状态:
执行时间是120秒
使用PHP 给redis 插入50W条数据时的状态:
执行时间是124秒
使用redis 给mysql插入50W条数据时的状态:
执行时间是735秒
4) 通过测试,验证redis和mysql每秒的插入效率:
测试结论:在网络rtt平均时间为0.2ms,value值大小平均是1kb的情况下,
redis 插入队列数据的效率大约为每秒 4200个value值
同等条件下,mysql插入数据的效率大约为每秒 700个,同样大小数据的insert操作
<?php $mysqli=mysqli_connect("10.1.0.169","root","123456","test","3306"); class runtime { var $StartTime = 0; var $StopTime = 0; function get_microtime() { list($usec, $sec) = explode(' ', microtime()); return ((float)$usec + (float)$sec); } function start() { $this->StartTime = $this->get_microtime(); } function stop() { $this->StopTime = $this->get_microtime(); } function spent() { return round(($this->StopTime - $this->StartTime) * 1000, 1); } } $runtime= new runtime; $runtime->start(); for($i=1;$i<100000;$i++){ $ins = "insert into `test_order` (`id`)vlaue ('$i')"; mysqli_query($mysqli,$ins); } $runtime->stop(); echo "insert sucess! 页面执行时间: ".$runtime->spent()." 毫秒\n"; mysqli_close($mysqli); ?>
结果:
使用PHP 给mysql 插入10W条数据时的状态:执行时间是70秒
使用PHP 给mysql 插入50W条数据时的状态:执行时间是335秒
2) 安装phpredis模块
1. 在https://github.com/owlient/phpredis 下载nicolasff-phpredis-2.1.3-167-ga5e53f1.zip
解压 unzip –q nicolasff-phpredis-2.1.3-167-ga5e53f1.zip
2. cd phpredis
/usr/local/php/bin/phpize 这个phpize是安装php模块的
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
确认是否生成redis扩展库:
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/
在php.ini中添加extension=redis.so
重新加载php /etc/init.d/php-fpm reload
3. php代码测试
<?php
$redis = new Redis();
$redis->connect('10.1.0.169',6379);
$redis->set('test','hello world!');
echo $redis->get('test');
?>
输出hello world!
3) PHP 写入redis数据的代码
rpush.php代码:
$redis = new Redis();
$redis->connect('10.1.0.169',6379);
$redis->rpush("order","$ins");
lpop.php代码:
$num=$redis->llen("order");
while ($num) {
$ins=$redis->lpop("order");
mysqli_query($mysqli,$ins);
$num=$redis->llen("order");
}
结论:
使用PHP 给redis插入10W条数据时的状态:
执行时间是24秒
使用redis 给mysql插入10W条数据时的状态:
执行时间是120秒
使用PHP 给redis 插入50W条数据时的状态:
执行时间是124秒
使用redis 给mysql插入50W条数据时的状态:
执行时间是735秒
4) 通过测试,验证redis和mysql每秒的插入效率:
测试结论:在网络rtt平均时间为0.2ms,value值大小平均是1kb的情况下,
redis 插入队列数据的效率大约为每秒 4200个value值
同等条件下,mysql插入数据的效率大约为每秒 700个,同样大小数据的insert操作
相关文章推荐
- 使用python查询MySQL数据并写入redis
- MySql,PostgreSql,SqlServer数据写入读取速度对比测试
- 循环写入大数据测试MySQL及SQL server
- 存储过程写入大批量数据,用于测试mysql查询优化
- MySQL构造测试数据
- MySQL连接字符串设置了字符集,写入数据还出现乱码
- 【python学习.用python将数据导入mysql测试】
- redis与mysql数据同步
- mysql 快速生成百万条测试数据
- Spark中ip映射数据应用库,二分查找省份,将结果写入mysql
- 【mysql】Infobright和mysql数据入库性能测试
- mysql 快速生成百万条测试数据
- Erlang静态键值对(key-value)数据分别写入erl文件与ETS表读取的测试
- MySQL 存储过程插入大量测试数据
- redis,mysql,memcache的区别与比较,redis两种数据存储持久化方式
- 通过Gearman实现MySQL到Redis的数据同步(异步复制)
- Python实战(6)单线程和多线程导入mysql数据对比测试
- MySQL最长用的32条语句(包括建表、写入数据、建外键、建索引、用户与权限等)
- 在MySQL中快速的插入大量测试数据