Определение простыми словами
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 работает локально и не предназначен для распределённого кэширования между серверами.