tp5 のキャッシュ保存方法、私のローカル設定はテキストを読み取ることです。
次のコードを例として挙げます: (推奨学習: 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; }
ここには 2 つのループがあります (キャッシュがない場合)情報の処理には基本的に 400 ~ 600 ミリ秒かかります。
tp に付属のキャッシュを追加すると、所要時間は大幅に短縮され、理想的な 40 ~ 60 ミリ秒になります。
これを書いてみると、redis は 10ms くらいで内蔵キャッシュよりも強力になるのかなと思いました。
そこで、redis キャッシュを追加しました
$redis = $this->redis = new \Redis; $redis->connect('127.0.0.1', 6379); $caches = $redis->get('kf_getallManeger'); if($caches)return $caches;
表面的には基本的に tp のキャッシュ方法と同じですが、実際には同時実行性があり、トラフィックはテスト済み
結論は次のとおりです:
ストレージの量が大きくない場合、TPのファイルキャッシュはredisに似ています。ただし、メモリの読み取りは高速でなければなりません。多くの値が保存されている場合、Redis の強力な I/O 機能は、通常のファイルの読み取りおよび書き込みよりも強力になります。
以上がthinkphp キャッシュと redis キャッシュはどちらが速いですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。