redis和mysql的数据写入测试

1)PHP 写mysql数据的代码php

 

  
  
           
  
  
  1. <?php  
  2. $mysqli=mysqli_connect("10.1.0.169","root","123456","test","3306");  
  3. class runtime  
  4. {  
  5.     var $StartTime = 0;  
  6.     var $StopTime = 0;  
  7.  
  8.     function get_microtime()  
  9.     {  
  10.         list($usec$sec) = explode(' ', microtime());  
  11.         return ((float)$usec + (float)$sec);  
  12.     }  
  13.  
  14.     function start()  
  15.     {  
  16.         $this->StartTime = $this->get_microtime();  
  17.     }  
  18.  
  19.     function stop()  
  20.     {  
  21.         $this->StopTime = $this->get_microtime();  
  22.     }  
  23.  
  24.     function spent()  
  25.     {  
  26.         return round(($this->StopTime - $this->StartTime) * 1000, 1);  
  27.     }  
  28.  
  29. }  
  30. $runtimenew runtime;  
  31. $runtime->start();  
  32.  
  33. for($i=1;$i<100000;$i++){  
  34. $ins = "insert into `test_order` (`id`)vlaue ('$i')";  
  35. mysqli_query($mysqli,$ins);  
  36. }  
  37. $runtime->stop();  
  38. echo "insert sucess! 页面执行时间: ".$runtime->spent()." 毫秒\n";  
  39. mysqli_close($mysqli);  
  40. ?>  

结果:mysql

使用PHP mysql 插入10W条数据时的状态:执行时间是70git

 

使用PHP mysql 插入50W条数据时的状态:执行时间是335github

 

 

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) 经过测试,验证redismysql每秒的插入效率:

 

测试结论:在网络rtt平均时间为0.2msvalue值大小平均是1kb的状况下,

redis 插入队列数据的效率大约为每秒 4200value

 

同等条件下,mysql插入数据的效率大约为每秒 700,一样大小数据的insert操做

 

相关文章
相关标签/搜索