tp5中的cache 儲(chǔ)存方式,我本地設(shè)置的是讀取文本的形式。
以這段代碼為例: ? ?(推薦學(xué)習(xí):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; ????}
這里有兩個(gè)循環(huán),如果不用緩存基本上要花費(fèi) 400–600ms 的時(shí)間處理完信息。
加入tp自帶的cache 之后 所花費(fèi)的時(shí)間明顯的縮短了,在40-60ms 之間,比較理想。
立即學(xué)習(xí)“PHP免費(fèi)學(xué)習(xí)筆記(深入)”;
寫到這里之后, 我試想,redis 會(huì)不會(huì)在10ms 左右,會(huì)比自帶的cache強(qiáng)大。
于是加入了redis 緩存
????????$redis?=?$this->redis?=?new?Redis; ????????$redis->connect('127.0.0.1',?6379); ????????$caches?=?$redis->get('kf_getallManeger'); ????????if($caches)return?$caches;
表面上基本上和tp 的cache 方法不分秋色,其實(shí)還有并發(fā),和流量還沒有測(cè)試
得到的結(jié)論是:
如果儲(chǔ)存的量不大,tp 的file 緩存,和redis 差不多。但是內(nèi)存讀取肯定要快。如果存儲(chǔ)的值多,redis 強(qiáng)大的i/o能力會(huì)強(qiáng)于 普通的文件讀寫。
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦