php - 本地测试读取redis和普通文件缓存的速度,redis慢一倍?

查看:165
本文介绍了php - 本地测试读取redis和普通文件缓存的速度,redis慢一倍?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  本地电脑测试读取redis和普通文件缓存的速度,分别连续读取缓存文件1次、1千次、1万次,缓存内容大小40KB,redis读取速度总比文件缓存速度慢一倍。如果确实如此,是不是在低并发情况下file缓存方式更快点呢?还是我的测试方式有误?

<?php
//redis缓存,读1万次约1.344396秒
$t1 = microtime(true);
$redis = new Redis();
$redis->connect("127.0.0.1","6379");
$redis->auth('123456');
for($i=0;$i<10000;$i++){
    $redis->get("test");
}
echo  round(microtime(true)-$t1,6);
exit;
?>

<?php
//文件缓存,读取1万次约0.635125秒
$t1 = microtime(true);

for($i=0;$i<10000;$i++){
    $html = file_get_contents('testfile.php');
}
echo  round(microtime(true)-$t1,6);
exit;
?>

解决方案

重新测试了,换成了Linux服务器,php5.6,512内存。连续读取1千次不同的文件(每个文件41KB),redis也是1千个不同的key,文件缓存还是比redis快!

但是,但是,后来我换成连续读取1万个不同的文件,文件缓存方式耗时30秒,二redis竟然只需0.7秒。看来文件缓存只适合小数据小并发,大并发下还是redis好很多

这篇关于php - 本地测试读取redis和普通文件缓存的速度,redis慢一倍?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆