Использование user-cache в APC

Функции управления кешем APC

Сохранение данных в кеш похоже на работу с ассоциативными массивами (хешами). Вы выбираете уникальную строку, которая будет служить ключем (например вида название_сайта:url_страницы), и сохраняете эти данные в кеше с этим ключем. При дальнейших обращениях к странице вы сможете извлечь по этому ключу сохраненные данные. Для работы с кешем вам будет достаточно всего четырех функций:

bool apc_add ( string $key , mixed $var [, int $ttl= 0 ] )
Сохранить данные только в том случае если такой ключ в кеше отсутствует.
mixed apc_fetch ( string $key [, bool &$success ] )
Вернуть сохраненные данные по этому ключу.
bool apc_store ( string $key , mixed $var [, int $ttl= 0 ] )
Сохранить данные по этому ключу (предыдущее значение, если было, стирается).
bool apc_delete ( string $key )
Удалить сохраненные данные по этому ключу из кеша.

Статистика работы кеша

Для того чтобы эффективно настроить работу скрипта с кешем понадобится способ получения статистики о работе кеша. Советую взять файл apc.php из пакета установки расширения и скопировать его в директорию с сайтом. Теперь зайдя по адресу http://ваш_сайт/apc.php вы увидите на одной странице всю основную статистику по работе APC, которая вам понадобится в ближайшее время.
Из этих таблиц можно почерпнуть такую полезную информацию:

Cached Variables – общий объем сохраненных данных в кеше (Кб)
Hits – количество успешных обращений в кеш
Misses – количество “промахов” (если данные не были найдены в кеше)
Request Rate (hits, misses) – плотность запросов к кешу всего (количество в секунду)
Hit Rate – плотность успешных запросов к кешу (количество в секунду)
Miss Rate – плотность “промахов” (количество в секунду)
Insert Rate – плотность запросов на сохранение данных в кеше (количество в секунду)

Вторая таблица содержит аналогичные поля, но для файлов в кеше.

Очевидно, что чем большим будет показатель отношения Hits/Misses тем более эффективно работает кеширование. Также важно учитывать насколько процентов заполнено отведенное для кеша пространство в оперативной памяти (параметр apc.shm_size в файле конфигурации).
Пример скрипта по работе с apc-кешем

//создаем уникальный ключ по схеме sitename:url
$apckey = _SERVER["HTTP_HOST"] . ‘:’ . $_SERVER['REQUEST_URI'];

//пытаемся прочитать готовую страницу из кеша
//если она была сохранена во время предыдущих обращений
//к странице
$htmlpage = apc_fetch($apckey);

//если она там есть
if ($htmlpage) {
//выводим ее в браузер
echo $htmlpage;
exit;
}
//если нет
else {
//включаем буферизацию всего вывода
ob_start();

//дальше идет весь код по созданию страницы
//как обычно — запросы к базе данных, парсим шаблоны и т.п.
//но весь вывод идет в специальный буфер благодаря вызову ob_start() выше

//сохраняем страницу в переменную
$htmlpage = ob_get_flush();
//и отправляем содержимое переменной в кеш
apc_store($apc_key, $htmlpage);
}

Несмотря на краткость статьи этой информации вполне достаточно чтобы начать создавать php-скрипты, которые эффективно используют apc-кеш. Проверено на себе! :)

Более полную информацию о вызовах упомянутых в статье функций можно найти в онлайн-документации по языку PHP.

Источник: http://phpcoder.ws/2009-05/apc-user-cache.html


Понравилась статья? Поделись с остальными.

Комментарии закрыты.