thinkphp緩存和redis緩存哪個快

thinkphp緩存和redis緩存哪個快

tp5中的cache 儲存方式,我本地設置的是讀取文本的形式。

以這段代碼為例: ? ?(推薦學習:thinkphp5

????public?function?getAllManegerId(){ ????????$cache?=checkCache('kf_getallManeger'); ????????if($cache)return$cache; ????????$role?=?Db::table('customer_role')->where(['type'=>2,?'role_status'=>0,])->select(); ????????$array?=?[]; ????????if(!empty($role)){ ????????????foreach?($role?as?$key=>$value){ ????????????????$customer?=?Db::table('customer')->where(['role_id'=>$value['role_id'],'user_status'=>0])->select(); ????????????????foreach?($customer?as?$keys=>$values){ ????????????????????array_push($array,$values['customer_id']); ????????????????} ????????????} ????????} ????????cache('kf_getallManeger',$array,300); ????????return?$array; ????}

這里有兩個循環,如果不用緩存基本上要花費 400–600ms 的時間處理完信息。

加入tp自帶的cache 之后 所花費的時間明顯的縮短了,在40-60ms 之間,比較理想。

立即學習PHP免費學習筆記(深入)”;

寫到這里之后, 我試想,redis 會不會在10ms 左右,會比自帶的cache強大。

于是加入了redis 緩存

????????$redis?=?$this->redis?=?new?Redis; ????????$redis->connect('127.0.0.1',?6379); ????????$caches?=?$redis->get('kf_getallManeger'); ????????if($caches)return?$caches;

表面上基本上和tp 的cache 方法不分秋色,其實還有并發,和流量還沒有測試

得到的結論是:

如果儲存的量不大,tp 的file 緩存,和redis 差不多。但是內存讀取肯定要快。如果存儲的值多,redis 強大的i/o能力會強于 普通的文件讀寫。

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊11 分享