エントリー名 :

PHP PEARのCache_Liteでキャッシュする

PHP PEARのCache_Liteでキャッシュする

PHPでキャッシュしたいときに、良くお世話になるPEARのCache_Liteの使い方メモ。使えるパラメータで知らないものが案外多かった。

基本的な使い方、インストール&導入

PEARのパッケージマネージャが入っていれば、「pear install Cache_Lite」でインストールできる。 あるいは、Cache_Lite Downloadでファイルをダウンロードし、解凍してからサーバーの適当な場所にアップロードして、「require_once("~./Cache/Lite.php")」とすれば、 Cache_Liteが使えるようになる。

基本的な使い方は、

require_once("Cache/Lite.php");
$cacheoptions = array(
"cacheDir" => "cache/",
"lifeTime" => 3600,
"automaticCleaningFactor" => "20",
);
$cache = new Cache_Lite($cacheoptions);

//Cacheするデータを見分ける一意的な名前
$id="id_name";

if ($cacheData = $cache->get($id)) {
	//Cacheしたファイルがあるとき
	$cacheData = unserialize($cacheData);
}else{
	//Cacheしたファイルがないとき
	//キャッシュファイルにデータを保存する
	$savedata="保存するデータ(配列なども可能)";
	$cache->save(serialize($savedata), $id);
}

ディレクトリ「cache」を作って、書き込みの権限を与えておけば、 「cache」内にファイルが作成されるはず。

「$cacheoptions」でキャッシュの仕方を設定する。 「cacheDir」は、ファイルをキャッシュするデイレクトリ、 「lifeTime」はキャッシュしたファイルを保存する時間。

「automaticCleaningFactor」は、デフォルトで0が設定され、 期限の切れた古いキャッシュファイルはそのまま残る設定になっている。 1以上の整数を入れると、自動的に古いCacheが削除される (整数nを設定すると、n回に1回の割合でファイルの整理がされる。 数字が小さいほど、ファイルが削除されやすい)。

キャッシュするデータが単なる文字列であれば、unserialize()も、 serialize()も必要ない。 配列などのデータを保存したい場合は、シリアライズしないとデータがファイルに書き込めない。

Cache_Liteで使えるパラメータ

キャッシングのときに設定できるパラメータで使いそうなものの一覧。

パラメータ
[デフォルトの値]説明
cacheDir
[/tmp/]キャッシュを保存するディレクトリ
lifeTime
[3600]
automaticCleaningFactor
[0]自動クリーニング。古いキャッシュをを削除するか。
readControlType
[crc32]読み込みの制御。他に、md5,strlenも設定可。md5,crc32,strlenの順に安全性は高いが、逆にパフォーマンスは低くなる。
automaticSerialization
[FALSE]自動的にデータのシリアライズをするか。TRUEで、保存データのシリアライズは必要なくなる。
hashedDirectoryLevel
[0]Cacheファイルをディレクトリ構造で保存するか。整数1につき、階層1つ。

Group化してキャッシュ

キャッシュは、グループで分けることもできる。

上の例で、$groupを指定すればいい。 デフォルトで省略した場合だと、$group="default"となっている。

$cache->get($id,$group));
$cache->save(serialize($savedata), $id,$group);

作成されるCacheファイルの名前は、$group+$idから決定される。

「"cacheDir" => "cache/$group/"」とか、「"hashedDirectoryLevel" => ~」で適当なディレクトリにCacheが作れる。

cleanとremoveでキャッシュの削除

僕は、使ったことはないけれど、 clean()とremove()でキャッシュを指定して削除できるみたいです。

$cache->remove($id,$group="default");
$cache->clean($group="default",$mode='ingroup');

$modeは「old」、「ingroup」、「notingroup」から指定できる。

  • old 古いキャッシュをクリア
  • ingroup 指定されたグループ内のキャッシュをクリア
  • notingroup 指定されたグループ内以外のキャッシュをクリア

ページをキャッシュする

Cache/Lite.phpは、ページ内の一部のデータを保存するという感じですが、 ページの一部を保存するのに、Cache/Lite/Output.phpも用意されています。

require_once("Cache/Lite/Output.php");
$cacheoptions = array(
"cacheDir" => "cache/",
"lifeTime" => 3600,
"automaticCleaningFactor" => "20",
);
$cache = new Cache_Lite_Output($cacheoptions);

//Cacheするデータを見分ける一意的な名前
$id="id_name";

if (!$cache->start($id)) {
	//キャッシュしたいページの部分
	$savedata=date("G:i:s");
	$cache->end();
}

start()は、$idと$groupが指定できます。

PHP PEAR 参考にした本

PEAR入門 PHP標準ライブラリを極める!
PEAR入門 PHP標準ライブラリを極める!

PEAR::DBとか、PEAR::Pager、PEAR::XML_Serializerとかも、いろいろ載っていた。 php5は、simplexmlがあるからいいのだけれど、 php4ではPEAR::XML_Unserializerが結構便利。


PHP PEARのCache_Liteでキャッシュするの前後の記事

カテゴリー [ メモ・覚え書き ] [ PHP ]



アマゾン(Amazon.co.jp) PHP

伝える力 (PHPビジネス新書)

1. 本 伝える力 (PHPビジネス新書)

[2007-04-19)]五段階評価4.0 論理的なだけが分かりやすい文章でないことが分かります 「全て論理的に考えてコミュニケーションを取る必要がある」と言われていますが、それだけでは非常に分かりにくい言葉になってしまいます。 コンテキスト「文脈」とある程...

独破力

2. 本 独破力

[2010-03-20)]五段階評価5.0 外の世界を求めて挑戦を続ける「松井大輔」の半生 地元山科から藤森中学への転校から始まり(たかが中学の転校と言うなかれ、京都はムラ社会なのでこれは難儀なことである) 鹿児島実業高校で精神的、肉体的に鍛えられた日...

子どもの心のコーチング―一人で考え、一人でできる子の育て方 (PHP文庫)

3. 本 子どもの心のコーチング―一人で考え、一人でできる子の育て方 (PHP文庫)

[2007-10)]五段階評価4.5 親たちの心を支える良書 赤ちゃんにとって親は保護者。保護者がいなければ赤ちゃんは生きられない。しかし成長して赤ちゃんが子どもになった時、あなたは子どもの支配者になろうとしてませんか・・...

「モテる男はこう口説く!」5日間集中レッスン (PHP文庫)

4. 本 「モテる男はこう口説く!」5日間集中レッスン (PHP文庫)

[2009-07-01)]五段階評価4.0 書を捨てて女性を誘おう! この本の著者からは、みんなの恋愛よ上手く行け!!!という切実な願いを感じます。 そして手に取った僕らは、素直に実践・行動に移すべきです。 なぜなら単に読み物とし...

はじめての新TOEICテスト 完全攻略バイブル

5. 本 はじめての新TOEICテスト 完全攻略バイブル

[2009-10-06)]五段階評価5.0 短期の学習で威力を発揮 初心者の私には大変親切な内容で、前段の試験の仕組みやアウトライン、時間配分から始まり、試験の各パートごとにポイントを押さえた内容も非常にわかりやすかったです。 ...

幸せの新しいものさし

6. 本 幸せの新しいものさし

[2010-06-04)]五段階評価5.0 行き詰った時に読みたい本 会社や組織で行き詰った時におすすめです。 読み終わったとき、じんわり心があったまります。自分達を取り巻く組織や環境に不満でも、戦ったり壊したり力ずくで変えていく...

とっておきの詩 (とっておきのどうわ)

7. 本 とっておきの詩 (とっておきのどうわ)

[2009-11-03)]五段階評価5.0 ふゆやすみ ふしぎなおはなし ゆかいなおはなし やさしいおはなし すてきなおはなし みんなのおはなし おとうさんも おかあさんも とても ふしぎなおかおです ゆっくりよんで...

2

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)



このエントリーのトラックバックURL:

アーカイブ

コメント

トラックバック

広告

あわせて読みたい

あわせて読みたい