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
喜歡就支持一下吧
相關推薦