在未看到這篇文章之前我們一般不會對于緩存這么看重,經過測試之后我們發現使用文件緩存比直接使用數據庫要快幾倍,下面測試是6倍之多,下面一起來看看吧.
在Thinkphp項目中測試各種環境下的程序執行時間,不使用緩存,代碼如下:
- <?php
- header("content-type:text/html;charset=utf-8");
- $starttime=caltime();//開始時間
- $articles=array();
- //循環取出500條文章信息
- for($i=0;$i<100;$i++){
- $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
- $articles=array_merge($articles,M('article')->query($sql));
- }//開源代碼Vevb.com
- $overtime=caltime();//結束時間
- echo '不使用緩存條件下程序執行時間是:'.($overtime-$starttime).'秒';
- ?>
結果:不使用緩存條件下程序執行時間是:0.0600001811981秒,文件緩存,代碼如下:
- <?php
- header("content-type:text/html;charset=utf-8");
- $starttime=caltime();//開始時間
- $articles=S('articles');
- if(!$articles){
- $articles=array();
- //循環取出500條 www.49028c.com 文章信息
- for($i=0;$i<100;$i++){
- $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
- $articles=array_merge($articles,M('article')->query($sql));
- }
- S('articles',$articles,60);
- }
- $overtime=caltime();//結束時間
- echo '使用文件緩存條件下程序執行時間是:'.($overtime-$starttime).'秒';
- ?>
結果:使用文件緩存條件下程序執行時間是:0.00999999046326秒,代碼如下:
- <?php
- header("content-type:text/html;charset=utf-8");
- $starttime=caltime();//開始時間
- $mem=new Memcache();
- if(!$mem->connect('127.0.0.1',11211)){
- echo '連接失敗';
- }
- $articles=$mem->get('articles');
- if(!$articles){
- $articles=array();
- //循環取出500條文章信息
- for($i=0;$i<100;$i++){
- $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
- $articles=array_merge($articles,M('article')->query($sql));
- }
- $mem->set('articles',$articles,MEMCACHE_COMPRESSED,60);
- }
- $overtime=caltime();//結束時間
- echo '使用memcache緩存條件下程序執行時間是:'.($overtime-$starttime).'秒';
- ?>
結果:使用memcache緩存條件下程序執行時間是:0.00999999046326秒,代碼如下:
- <?php
- header("content-type:text/html;charset=utf-8");
- $starttime=caltime();//開始時間
- $redis=new Redis();
- $redis->connect('127.0.0.1','6379');
- if(!$redis){
- echo '連接失敗';
- }
- $articles=$redis->get('articles');
- if(!$articles){
- $articles=array();
- //循環取出500條www.49028c.com文章信息
- for($i=0;$i<100;$i++){
- $sql="select a.*,c.* from blog_article as a,blog_category as c where a.reid=c.id limit 0,5";
- $articles=array_merge($articles,M('article')->query($sql));
- }
- $redis->setex('articles',60,$articles);
- }
- $overtime=caltime();//結束時間
- echo '使用redis緩存條件下程序執行時間是:'.($overtime-$starttime).'秒';
- ?>
結果:使用redis緩存條件下程序執行時間是:0.00999999046326秒,可見使用緩存的條件下,程序的執行速度比不使用緩存的時候快了6倍,但是不同緩存由于數據不是特別龐大,幾乎沒有什么差別.
新聞熱點
疑難解答