PEARのCache_Liteを試してみた

file_get_contents()を使ってRSSから新着情報を読み込むシステムを作成していたのですが、

処理速度に少し問題がありました。

 

確かに、

アクセスの度にURLの内容をfile_get_contents()で読み込むのは、

あまりいい方法ではないかも。。。

 

そこで、

以前から気になっていたPEARライブラリのCache_Liteをつかってキャッシュを使用することにしました。
※因みにレンタルサーバーを使用しています。

 

まず、

http://pear.php.net/package/Cache_Lite/download

からCache_Liteをダウンロードして解凍すると、

ディレクトリの中に「Cache」ディレクトリが入っているので、

それをサーバー上の任意の場所にアップロードします。
※他のディレクトリとファイル(「docs」「tests」「LICENSE」など)は不要です

 

次に、

任意の場所にキャッシュファイル保存用のディレクトリを作成しておきます。

 

今回は、「Cache」ディレクトリの中に「tmp」というディレクトリを作成します。
※必ず書き込み権限を与えておいてください。

 

そして、コードを書いていきます。

//PEARのキャッシュライブラリを読み込み
require_once "Cache/Lite.php";

//オプションの設定
$cache_opt = array(
"cacheDir" => "Cache/tmp/", //キャッシュファイルの保存場所
"lifeTime" => 3600, //キャッシュ時間
"pearErrorMode" => CACHE_LITE_ERROR_DIE
);

//オブジェクトを作成
$cache_obj = new Cache_Lite($cache_opt);

$url = "RSSのパスまたはURLを設定";

if($cache_obj->get($cache_id)){
//キャッシュが存在する場合は、キャッシュを取得
$data = $cache_obj->get($cache_id);
}else{
$data = file_get_contents($url);
//キャッシュが存在しない場合は、キャッシュを保存
$cache_obj->save($data, $cache_id);
}

※もちろんPEARライブラリなので、PERA本体も読み込めるようにしておいてください。

 

これでプログラムを実行させた後に、

「tmp」ディレクトリの中を確認してみてください。

 

キャッシュファイルが作成されていると思います。

 

file_get_contents()以外でもcurl()関数などいろいろと組み合わせて使用できるので、

簡単で便利ですが、

リアルタイム性が必要な処理の場合には注意してください。

この記事を書いている人
株式会社ディープ
名前足立拓也

メールアドレスadachi@deep-deep.jp

関連記事

最近の記事

  1. ドメインについて
  2. WP:WordPress(ワードプレス)
  3. URL設計(URLデザイン)
  4. URL「ディレクトリ名」と文字アンダースコア(_)とハイフン(-)
  5. SEO対策(外部ファイルの読み込み)
  6. URL リダイレクト
  7. インデックスされない
  8. 内部対策は必要?
  9. CMS(シーエムエス)
  10. SEO業者は必要?

Twitter

アーカイブ

PAGE TOP