ホームページ  >  記事  >  バックエンド開発  >  thinkPHP5 フレームワーク データベースのコヒーレント操作:cache() の使用法の詳細

thinkPHP5 フレームワーク データベースのコヒーレント操作:cache() の使用法の詳細

jacklove
jackloveオリジナル
2018-05-22 17:34:231684ブラウズ

この記事の例では、thinkPHP5 フレームワーク データベースの一貫した操作のためのcache() の使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

はじめに

TP5 に付属するキャッシュ システムはファイル タイプ キャッシュです。つまり、ファイルタイプキャッシュです。ストレージ アドレスは次のとおりです: ルート ディレクトリ..runtimecache (ルート ディレクトリは public を指します)。

redisと比較すると、このキャッシュシステムのmemcachedには確実に制限があり、自動更新やキャッシュされたデータの複雑さに違いがあります。ただし、いくつかの単純なクエリには非常に役立ちます。例えば、記事などのコンテンツを利用すると良いでしょう。

cache は、select、find、value、column メソッドとその派生メソッドに使用できます。キャッシュ メソッドを使用した後は、キャッシュの有効期間内にデータベース クエリ操作が再度実行されることはありませんが、キャッシュ内のデータは削除されます。データ キャッシュについて タイプと設定はキャッシュ セクションにあります。

ストレージキャッシュ

1. 単純なストレージ

// ニューステーブルの id=10 でニュースをクエリし、キャッシュに保存します。デフォルトで設定されたキャッシュ時間を読み取ります。 db(): アシスタント関数。

db('news')->cache(true)->find(10);
 
//你也可以自定义时间,60秒表示
 
db('news')->cache(true,60)->find(10);

2. キャッシュ識別子を指定します

//キャッシュ識別子はキーとして理解できます。つまり、キャッシュ内の特定のデータのトークンを取得する場合、id=15はキャッシュに保存され、指定された添え字がキーです

db('news')->cache('key')->find(15);

//id=15のデータを取得したい場合

$data = \think\Cahce::get('key');

このデータはどこからでも読み取ることができ、session()と似ています。

3. キャッシュ メソッドはキャッシュ タグの設定をサポートします

db('news')->cache('key',60,'tagName')->find(15);

キャッシュを更新します

ここで、プロジェクトが一定期間実行されると、大量のキャッシュ ファイルが生成されます。ファイルの数はますます増え、リクエストごとにキャッシュ ファイルを探すのにかかる時間は、データベースに直接クエリするよりも遅くなる可能性があります。どうすればいいですか?

TP5にはキャッシュの自動更新方法があります。つまり、同じデータが削除または更新されると、古いキャッシュ ファイルは自動的に削除されます。

/id=328 でキャッシュをクエリします

$list = db('news')->cache(true)->find(328);

//テストのために、手動でデータベース id=328 のフィールドの値を変更し、最初のクエリ リクエストを再度実行すると、データベース内の変更されたフィールドが変更されていないことがわかります。その後、

db(' news')->update( ['id'=>328,'title'=>'Test']);

//このタイミングで再度リクエストすると取得データが変わっていることがわかります. この時点では、更新操作が実行され、キャッシュに書き換えられたため、読み取りキャッシュではなくなりました。 もちろん、上記の状況の前提として、主キー クエリが使用されます。 thinkPHP5 フレームワーク データベースのコヒーレントな操作のための cache() の使用について説明しています。関連コンテンツの詳細については、php 中国語 Web サイトを参照してください。

関連する推奨事項:

多重継承効果を達成するための PHP インターフェイスの多重継承と tarits メソッド チュートリアルの詳細


特定の年の週の開始日と終了日を取得する方法に関する PHP チュートリアル


php string 面接でよくある質問の逆質問


以上がthinkPHP5 フレームワーク データベースのコヒーレント操作:cache() の使用法の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。