勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

PHPでデータをファイルキャッシュさせる(Cache_Lite)

  PHP

最近携わった案件でPHPでファイルキャッシュをしているシステムがあった。今までファイルキャッシュは試したことがないので、やってみたくて調べたところPearでCache_Liteというパッケージがあり、これが簡単に使えた。

 

■リファレンス

http://pear.php.net/manual/ja/package.caching.cache-lite.php

 

■インストール

pear install Cache_Lite

 

■ソース

<?php
require_once('Cache/Lite.php');
$id = 'test'; //キャッシュのID

$params = array(
	'cacheDir' => '/var/www/html/cache/', //キャッシュファイルを置くディレクトリ
	'caching' => 'true', // キャッシュを有効
	'automaticSerialization' => 'true', // 配列を保存可能
	'lifeTime' => 180, // キャッシュ保存時間を秒数で指定
	'automaticCleaningFactor' => 20, // 自動で古いファイルを1/20で削除
);
$cache = new Cache_Lite($params); 

if( $data = $cache->get($id) ){
	//キャッシュデータがある場合の処理
}else{
	//キャッシュデータがない場合の処理
	$cache->save($data); //$dataにキャッシュさせたいデータを入れてキャッシュファイルを生成しておく
}
var_dump($data);

 

■その他

キャッシュファイル作成時のみ少し実行に時間がかかるが、それ以降はデータベースからデータを取得するより速くなった。インストールから実装までかなり簡単に使えるようなので、今後は積極的に使っていく。

 - PHP

  関連記事

PHPで値が空の配列を削除

やりたかった事は配列でキーは入っていて値が入っていない ものを削除したかった。 ...

PHPでdo-while(0)構文を利用する際のメリット

あるソースコード上にdo-whileという構文が使われていた。見たことのない構文 ...

PHP7が2015年11月にリリースされるらしい

PHP7で変わること ——言語仕様とエンジンの改善ポイント from Yoshi ...

PHPでクエリ内容を取得する

エラーログを確認している際によく分からない動作に なっているところがあった。 ペ ...

MySQLから任意の順番で取り出す

SELECT * FROM テーブル名 WHERE seq =  $seq OR ...