【さくら】pearのCache_Liteでキャッシュする

PEAR ライブラリの Cache_Lite でキャッシュする方法
サンプルスクリプトも含めてこのページがわかりやすかった

サンプルスクリプトもほぼそのまま
—————————————————————-
<?php

// クラス読み込み
require_once(‘Cache/Lite.php’);

// IDのセット
//$cache_id = $_SERVER[“REQUEST_URI”]; //こんなんでもいい
$cache_id = ‘123456’;
// オプション
$options = array(
//さくらの場合、/tmp/はホームディレクトリより上にあるがキャッシュは保存できる。ただ他ユーザーと共有なのでホームディレクトリ以下に保存するほうがいいと思う
// ‘cacheDir’ => ‘/tmp/’, //キャッシュ保存先
‘cacheDir’ => ‘/home/acount_name/tmp/’, //共有サーバーなのでホームディレクトリ以下。フォルダは作って事前に作る必要がある
‘caching’ => ‘true’, // キャッシュを有効に
‘automaticSerialization’ => ‘true’, // 配列を保存可能に
‘lifeTime’ => 10, // 10(生存時間:10秒)
‘automaticCleaningFactor’ => 200, // 自動で古いファイルを削除(1/200の確率で実行)
‘hashedDirectoryLevel’ => 1, // ディレクトリ階層の深さ(高速になる)
);

// オブジェクトのnew
$cache = new Cache_Lite($options);

// キャッシュデータがあるかどうかの判別
if ( $cache_data = $cache->get($cache_id) )
{
echo “【キャッシュ使用】
“;
$buff = $cache_data;
}
else
{
// キャッシュデータがない。APIからデータを読み込む処理
// データ取得処理ここから
// ……………………… $read_data にデータを入れておく
$read_data = date(‘Y/m/d H:i:s’);
// データ取得処理ここまで

echo “【キャッシュ未使用】
“;
$buff = $read_data;
//$cache->save($buff); ← $cache_id は省略できる?(明示したほうが安心)
$cache->save($buff,$cache_id); //キャッシュを保存
}
print_r($buff);
?>
—————————————————————-

タイトルとURLをコピーしました