ホームページ  >  記事  >  バックエンド開発  >  PHP のキャッシュ技術の概要

PHP のキャッシュ技術の概要

WBOY
WBOYオリジナル
2016-07-25 09:03:531144ブラウズ
  1. include('adodb.inc.php'); # ADOdbに共通のコードをロード
  2. $ADODB_CACHE_DIR = '/usr/ADODB_cache';
  3. $conn = &ADONewConnection('mysql'); #接続を作成します
  4. $conn->PConnect('localhost','userid','','agora');# MySQL、agora dbに接続します
  5. $sql = '顧客からCustomerName、CustomerIDを選択';
  6. $rs = $conn->CacheExecute(15,$sql);
  7. ?>
上記のようにコードをコピーします
データをクエリするたびに、対応する結果がシリアル化され、ファイルに保存されます。将来的には、データベースに直接クエリを実行せずに、キャッシュ ファイルからクエリ ステートメントを取得できるようになります。

Smarty が提供するページ キャッシュ機能を見てみましょう:

  1. require('Smarty.class.php');

  2. $smarty = new Smarty;

  3. $smarty->キャッシュ= true;

  4. if(!$smarty->is_cached('index.tpl')) {

  5. // 利用可能なキャッシュがありません。変数の割り当てをここで行います。
  6. $contents = get_database_contents() ;
  7. $smarty->assign($contents);
  8. }
  9. $smarty->display('index.tpl');
  10. ?>

コードをコピー
ページにアクセスするたびに、まず対応するキャッシュが存在するかどうかを確認し、存在しない場合はデータベースに接続してデータを取得し、テンプレート変数の割り当てを完了してページを表示し、キャッシュ ファイルを生成します。同時に、次回アクセスしたときにキャッシュ ファイルが存在し、if ブロックのデータ クエリ ステートメントが実行されなくなります。もちろん、有効期間の設定やキャッシュグループの設定など、実際に使用する際には考慮すべき点がたくさんあります。詳細については、Smarty マニュアルのキャッシュに関する該当の章を確認してください。

上記の 2 つの一般的な PHP コンポーネント キャッシュ方法は、Adodb のキャッシュではデータをキャッシュするのに対し、Smarty のキャッシュではページをキャッシュすることに焦点が異なります。キャッシュ機能を提供するコンポーネントは他にも多数あります (PEAR::Cache_Lite など)。実際のプログラミングでどのソリューションを使用するかには、特定の状況の具体的な分析が必要であり、包括的に使用することもできます。

これらのコンポーネントの組み込みキャッシュ ソリューションを使用する明らかな利点は、その実装がクライアントに対して透過的であることです。キャッシュの詳細を考えずに、必要な設定(キャッシュ時間、キャッシュ ディレクトリなど)を行うだけで、システムが設定に従って自動的にキャッシュを管理します。しかし、その欠点も明らかです。なぜなら、各リクエストは依然として PHP によって解析される必要があり、この場合、単に動的を実行するだけでは、純粋な静的リクエストと比較して効率が大幅に低下するからです。はい、キャッシュだけでは十分ではありません。静的キャッシュを実装する必要があります。


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