thinkPHP5 フレームワーク データベース コヒーレント操作におけるキャッシュ() の使用法の詳細な説明

jacklove
リリース: 2023-04-02 08:32:02
オリジナル
2080 人が閲覧しました

この記事では主に、thinkPHP5 フレームワーク データベースのコヒーレントな操作におけるキャッシュ() の使用法を紹介し、thinkPHP5 におけるキャッシュの適用シナリオを例の形で分析し、キャッシュの設定、更新、削除などの操作スキルを紹介します。必要な方は以下を参照してください

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

はじめに

TP5 に付属するキャッシュ システムはファイル タイプです。キャッシュ。つまり、ファイルタイプキャッシュです。ストレージアドレスは、ルートディレクトリ\..\runtime\cache (ルートディレクトリはパブリックを指します) です。

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

キャッシュは、select、find、value、column メソッドとその派生メソッドに使用できます。キャッシュ メソッドを使用した後、キャッシュの有効期間内にデータベース クエリ操作は再度実行されませんが、キャッシュ内のデータは直接取得されます。データ キャッシュの種類と設定については、キャッシュのセクションを参照してください。

#ストレージ キャッシュ

1. 単純なストレージ

//查询news表中id=10的新闻存储于cache中,写true默认读取配置的中缓存时间,db():助手函数
db('news')->cache(true)->find(10);
//你也可以自定义时间,60秒表示
db('news')->cache(true,60)->find(10);
ログイン後にコピー

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

//缓存标识可以理解为键,就是当你想要去取出缓存中的某条数据的令牌,id=15的存进cache并且给定下标为key
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的存进cache
$list = db('news')->cache(true)->find(328);
//现在进行测试下,你手动去数据库修改id=328的某个字段的值,然后再次进行第一次的查询请求发现数据库修改的字段没变,这时候就是读取的缓存,然后
db('news')->update(['id'=>328,'title'=>'测试']);
//这时候你再次请求会发现获取的数据改变了 ,这时候不再是读取的缓存,因为你做了更新操作,重新写进缓存了,当然,以上说的这种情况前提是使用的主键查询的
ログイン後にコピー

興味があるかもしれない記事:

thinkPHP3.2 はページング カスタム スタイルを実装します メソッドの説明

#Laravel フレームワーク マルチ画像アップロード機能の Blob 実装例解説

分析

Swoole 1.10. 0 Newバージョンがリリースされ、多くの新機能が追加されました。

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート