Aug 16, 2005 22:48
Нарыл в PEAR модуль Cache_Lite.
Очень удачная штука, рекоммендую.
Использовать его можно так:
/**
* Возвращает ссылку на объект
*
* @param int $ObjectId
* @return DocObject
*/
function &DAL_FindObject($ObjectId) {
/* @var $cache Cache_Lite */
$cache =& GetCacheInstance();
$res = $cache->get($ObjectId, 'obj');
if ($res === false) {
$res =& DB_DAL_FindObject($ObjectId);
$cache->save($res, $ObjectId, 'obj');
}
return $res;
}
Здесь GetCacheInstance - возвращает singleton кеш для всего приложения, а DB_DAL_FindObject вытаскивает объект из БД, если того не оказалось в кеше.
Очень удобно. Кеширование происходит и в памяти и на диске. Производительность возрастает существенно