首页 > 编程 > PHP > 正文

Centos下循环测试php对Redis和共享内存(shm)读写的效率

2020-03-22 17:30:59
字体:
来源:转载
供稿:网友
这篇文章主要介绍了关于Centos下循环测试php对Redis和共享内存(shm)读写的效率,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下

redis和memcache还有共享内存都是读取内存的数据,为了测试一下到底效率谁更胜一筹,我在我的Centos虚拟机下做了一次公平的测试。

测试参数

环境:Centos (配置忽略)、语言:PHP、WebServer:Nginx、测试次数:10000、字符类型及长度:字符串(1024)

准备测试

 ?php//测试数据$arr = array( 1 =  array ( id = 4146 , attacksdfdsfdsddddddddddd = 5.45 , atk_html' target='_blank'>class = 神圣级 , wufang = 4.9 , def_class = 超神级 , cefang = 4.9 , mdf_class = 超神级 , hp = 6.43 , hp_class = 神王级 , dodge = 55 , dodge_class = SSSS , crit = 50 , crit_class = SSS , penetrate = 55 , penetrate_class = SSSS , mingzhong = 51 , hit_class = SSSS , anti_dizziness = 0 , anti_dizzinesssdfdsfdsfdsfdsfds_class = F , anti_critical = 20 , anti_critical_class = F , tenacity = 0 , tenacity_class = F , 2 =  array ( id = 414ddffff7 , attack = 5.45 , atk_class = 神圣级 , wufang = 4.95 , def_class = 超神级 , cefang = 4.95 , mdf_class = 超神级 , hp = 6.43 , hp_class = 神王级 , dodge = 55 , dodge_class = SSSS , crit = 50 , crit_class = SSS , penetrate = 55 , penetrate_class = SSSS , mingzhong = 51 , hit_class = SSSS , anti_dizziness = 0 , anti_dizziness_clsdfdsfdsfdsfdsfdsass = F , anti_critical = 20 , anti_critical_class = F , tenacity = 0 , tenacity_class = F ,$str = json_encode($arr);echo strlen($str); //输出1024

对redis进行10000次写入测试

 ?php$redis = new Redis();$redis- connect( 127.0.0.1 ,6379);$redis- auth( 310c8cabcdefghf2d8abcdefd44496ac80 $start = microtime(true) ;for($i = 0; $i 10000; $i++) { $redis- set( key , $str);echo microtime(true) - $start; //执行5次,大概平均结果为 1.7016470432281 秒

对共享内存(shm)进行10000次写入测试

 ?php$key = 0x4337b123; $size = 1024; $shmid = @shmop_open($key, c , 0644, $size); $start = microtime(true);for($i = 0; $i 10000; $i++) { shmop_write($shmid, $str, 0); @shmop_close($shmid);echo microtime(true) - $start; //执行5次,大概平均结果为 0.0025370121002197 秒

对redis进行10000次读测试

 ?php$redis = new Redis();$redis- connect( 127.0.0.1 ,6379);$redis- auth( 310c8cabcdefghf2d8abcdefd44496ac80 $start = microtime(true) ;for($i = 0; $i 10000; $i++) { $redis- get( key echo microtime(true) - $start; //执行5次,大概平均结果为 2.1236310005188 秒

对共享内存(shm)进行10000次读测试

 ?php$key = 0x4337b123; $size = 1024; $shmid = @shmop_open($key, c , 0644, $size); $start = microtime(true);for($i = 0; $i 10000; $i++) { shmop_read($shmid, 0,1024);@shmop_close($shmid);echo microtime(true) - $start; //执行5次,大概平均结果为 0.0021078586578369 秒

结果清单

Redis 读:2.1秒 写:1.7秒

Shm 读:0.0021秒 写:0.0025 秒

可见,效果差别悬殊。

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

php实现共享内存进程通信函数(_shm)

PHP代码自动检测(git/svn集成PHP_CodeSniffer)

以上就是Centos下循环测试php对Redis和共享内存(shm)读写的效率的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表