PearにCache_Liteと呼ばれるキャッシュを管理するパッケージがあります。
キャッシュとは、取得したデータなどを一時的に保存しておき、それを再利用することで 処理時間を短縮する技術です。
ここでは、Cache_Lite 1.5.2で取得したxmlデータをキャッシュしてみます。 Cache_Lite(lite.php)は、Pearのインストーラーでインストールするか、任意のディレク トリに保存しrequireすることで使用できます。
Amazon Web サービスのRESTを利用して取得したxmlデータをキャッシュします。 同じ検索であれば、キャッシュを使用することでAmazon側のサーバ負荷の軽減や 検索結果の処理スピードの向上が期待できます。
<?php require_once 'Cache/Lite.php'; $awsUrl = 'http://webservices.amazon.co.jp/onca/xml?Service=AWSECommerceService'; $awsUrl .= '&SubscriptionId=「Amazonで取得したID」'; $awsUrl .= '&Operation=ItemSearch&SearchIndex=Music&Artist=Doobie%20Brothers'; $awsUrl .= '&ResponseGroup=Medium'; $cacheOptions = array ( 'cacheDir' => './tmp/', 'lifeTime' => '30', ); $cacheId = $awsUrl; $objCache = new Cache_Lite($cacheOptions); if ($cache = $objCache->get($cacheId)) { $awsBuff = $cache; } else{ $awsBuff = file_get_contents($awsUrl); $objCache->save($awsBuff,$cacheId); } print $awsBuff; ?>
上記例では、tmpディレクトリにキャッシュファイルが作成されます。 $cacheOptionsにキャッシュの保存先とキャッシュの有効時間を指定します。
getメンバ関数は、キャッシュIDと呼ばれるキャッシュを管理する値をもとにキャッシュが 作成されているかを確認します。キャッシュが存在する場合、そのキャッシュの内容を返します。 キャッシュが存在しない場合、falseを返します。
キャッシュを保存するには、saveメンバ関数を使用します。 キャッシュIDは、省略できるようですが気持ちよくないので明示的に指定します。
キャッシュファイルのファイル名は、「cache_ + グループ + キャッシュID」として保存されます。 グループとキャッシュIDは、デフォルトでMD5ハッシュ値が使用されます。
Copyright 1997-2010 BBB All rights reserved.