PHPにはキャッシュがないのでしょうか?
本当に非分散メモリ キャッシュを実行したい場合、APPLICATION オブジェクト内でのみ実行できますか?
-----解決策---------
ネット抜粋 PHP キャッシュ テクノロジ:
ユニバーサル キャッシュ テクノロジ
データ キャッシュ: ここでいうデータ キャッシュとは、ページがアクセスされるたびに、対応するキャッシュ データが検出されます。存在しない場合は、データベースに接続してデータを取得し、クエリ結果をシリアル化してファイルに保存します。将来、同じクエリ結果がキャッシュ テーブルまたはファイルから取得されます。
最も広く使用されている例は、Discuz の検索機能です。この機能は、結果 ID をテーブルにキャッシュし、次回同じキーワードを検索するときに最初にキャッシュ テーブルを検索します。
複数のテーブルが関連付けられている場合、配列を生成し、必要に応じてアタッチされたテーブルの内容をメイン テーブルのフィールドに保存するのが一般的な方法です。これの利点は、1 つのテーブルだけでできることです。読み取り可能ですが、欠点は、2 つのデータを同期するためにさらに多くの手順が必要になることです。この場合、データベースが常にボトルネックになります。速度を犠牲にすることが重要です。
ページ キャッシュ:
ページにアクセスするたびに、まず対応するキャッシュされたページ ファイルが存在するかどうかを検出し、存在しない場合はデータベースに接続し、データを取得して表示します。ページを更新し、同時にページ ファイルを生成します。これにより、次回アクセスしたときにページ ファイルが有効になります。 (インターネット上のテンプレート エンジンと一部の一般的なキャッシュ クラスには、通常、この機能があります)
時間トリガー キャッシュ:
ファイルが存在するかどうか、タイムスタンプが設定された有効期限よりも小さいかどうかを確認します。ファイル変更のタイムスタンプ。現在のタイムスタンプから有効期限のタイムスタンプを引いたものより大きい場合はキャッシュを使用し、それ以外の場合はキャッシュを更新します。
コンテンツトリガーキャッシュ:
データの挿入または更新時にキャッシュを強制的に更新します。
静的キャッシュ:
ここで言う静的キャッシュとは、HTML や XML などのテキスト ファイルを静的に直接生成し、更新時に再生成するものを指します。あまり変わりませんので、それについてはもう話さないでください。
上記の内容はコードレベルのソリューションであり、他のフレームワークを直接 CP するため、変更するのが面倒ですが、内容は似ており、簡単に実行でき、さまざまな方法で使用できます。サーバー側のキャッシュ ソリューション (非コード レベル) では、
メモリ キャッシュを実現するために複数の関係者の協力が必要です。
Memcached は、メモリ キャッシュを削減するために使用される高性能の分散メモリ オブジェクト キャッシュ システムです。データベースの負荷、アクセス速度が向上します。
Memcached の例は次のとおりです:
コード
<?php $memcache = 新しい Memcache; $memcache->connect('localhost', 11211) or die ("接続できませんでした"); $version = $memcache->getVersion(); echo "サーバーのバージョン: ".$version."n"; $tmp_object = 新しい stdClass; $tmp_object->str_attr = 'テスト'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("サーバーへのデータの保存に失敗しました"); echo "データをキャッシュに保存します (データは 10 秒で期限切れになります)n"; $get_result = $memcache->get('key'); echo "キャッシュからのデータ:n"; var_dump($get_result); ?><div class="clear"></div>