1)PHP 写入mysql数据的代码php
- <?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);
- ?>
结果:mysql
使用PHP 给mysql 插入10W条数据时的状态:执行时间是70秒git
使用PHP 给mysql 插入50W条数据时的状态:执行时间是335秒github
2) 安装phpredis模块redis
1. 在https://github.com/owlient/phpredis 下载nicolasff-phpredis-2.1.3-167-ga5e53f1.zipsql
解压 unzip –q nicolasff-phpredis-2.1.3-167-ga5e53f1.zip网络
2. cd phprediside
/usr/local/php/bin/phpize 这个phpize是安装php模块的php-fpm
./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操做