APCu — кэш для PHP в памяти | Глоссарий FREEHOSTING

APCu

APC User Cache
APCu — APCu — это расширение PHP для кэширования пользовательских данных в памяти, ускоряющее выполнение скриптов за счет снижения количества обращений к диску и базам данных.

Определение простыми словами

APCu (APC User Cache) — это расширение для PHP, позволяющее сохранять данные в оперативной памяти сервера для быстрого доступа. Вместо повторных вычислений или запросов к базе данных, скрипты могут быстро получать нужную информацию из памяти, что значительно повышает производительность веб-приложений.

Это кэш пользовательских данных, который работает только в контексте одного процесса PHP, не разделяя кэш между разными серверами или процессами. APCu широко применяется для ускорения проектов на PHP, особенно когда важна скорость обработки запросов при высоких нагрузках.

Сравнение

Характеристика APCu Memcached/Redis
Тип кэша Локальный кэш в памяти PHP Удалённый кэш в памяти, поддерживает сеть
Доступность Только внутри текущего PHP-процесса Доступен для всех подключённых клиентов
Сложность настройки Очень простая Требует дополнительного сервера и настройки
Использование Для мелких, быстрых кэшей в веб-приложениях Для распределённого и масштабируемого кэширования

Кейсы использования

  • Кэширование результатов дорогостоящих SQL-запросов.
  • Хранение промежуточных вычисленных данных в рамках одного запроса.
  • Кэширование настроек и конфигураций приложения.
  • Ускорение доступа к данным, которые редко изменяются.
  • Хранение сессий пользователя (в случае простой архитектуры без распределения).

Негативный пример: использование APCu для кэширования данных в распределённой системе без дополнительной синхронизации приведёт к несогласованности данных между серверами.

Технические детали

Для установки APCu в большинстве дистрибутивов Linux достаточно использовать команду:

sudo apt install php-apcu

В PHP-скрипте доступ к кэшу осуществляется через функции apcu_store(), apcu_fetch() и apcu_delete(). Пример кэширования данных:

 'Иван', 'age' => 30]);
// Получение из кэша
$user = apcu_fetch('user_123');
if ($user !== false) {
    echo 'Имя пользователя: ' . $user['name'];
}
?>

APCu интегрируется с различными веб-серверами и конфигурациями PHP, включая FPM и CLI, но кэш живёт только в пределах одного процесса и обнуляется при рестарте PHP.

Подробнее смотрите в справочнике по APCu и в разделах по PHP и кэшированию.

Частые вопросы

Что такое APCu?

APCu — это PHP-расширение для кэширования пользовательских данных в памяти для повышения производительности.

Как установить APCu на сервер?

В большинстве систем достаточно выполнить команду установки php-apcu через пакетный менеджер.

Подходит ли APCu для распределённого кэширования?

Нет, APCu работает локально и не предназначен для распределённого кэширования между серверами.