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

Twitterはこちら >>

関連記事

最近の記事

  1. レンタルサーバ:おすすめの共用サーバ
  2. アフィリエイト
  3. VPSサーバー
  4. ブログのネタ探し
  5. プログラミング
  6. SSLとは
  7. 常時SSL通信設定後にやっておくべきこと
  8. 常時SSL通信設定方法
  9. htaccessとは
  10. WordPress

Twitter

ダッチ@職業ブロガー兼プログラマー
@gatsu0000

  • リモートやってみて分かったこと。 会社って意外と仕事に集中できていなかった。 当たり前か。会社って、別に落ち着ける空間じゃないですからね。
    about 2日 ago via Twitter Web App

アーカイブ

PAGE TOP