Установка Memcached на Alma Linux 8

Memcached — это высокопроизводительная распределённая кеширующая система в оперативной памяти (memory object cache). Она ускоряет динамические веб‑приложения, снижая нагрузку на базу данных. Частые случаи применения: кеширование результатов запросов БД, сессий, страниц, API‑ответов и объектов (изображения, метаданные). Memcached часто используют для PHP‑приложений, включая WordPress и Joomla.
Что вы получите
- Быстрое руководство по установке Memcached на Alma Linux 8.
- Настройка сервиса, файрвола и поддержки PHP.
- Проверка работы и рекомендации по безопасности.
Предварительные требования
- Сервер под управлением Alma Linux 8.
- Настроен пароль root или соответствующие привилегии sudo.
Установка Memcached
Пакет memcached доступен в стандартных репозиториях Alma Linux. Установите Memcached и библиотеку libmemcached:
dnf install memcached libmemcached -yПроверить установленный пакет:
rpm -qi memcached(В примере вывод rpm содержит служебную информацию о версии и сборке.)
Запустите и включите автозапуск сервиса:
systemctl enable memcached --nowПроверить статус сервиса:
systemctl status memcachedВы должны увидеть статус Active: active (running) и информацию о процессе memcached.
По умолчанию Memcached слушает порт 11211. Можно проверить процесс так:
ps -ef | grep memcachedКонфигурация Memcached
Основной файл конфигурации: /etc/sysconfig/memcached. Отредактируйте его по потребностям:
nano /etc/sysconfig/memcachedПараметры, которые чаще всего меняют:
PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1,::1"- PORT — порт прослушивания (по умолчанию 11211).
- USER — учётная запись для процесса.
- MAXCONN — максимальное число одновременных подключений.
- CACHESIZE — объём кеша в МБ.
- OPTIONS — дополнительные опции; по умолчанию локальный интерфейс.
Сохраните файл и перезапустите сервис:
systemctl restart memcachedВажно: по умолчанию Memcached доступен только на localhost. Чтобы разрешить удалённые подключения, измените OPTIONS, но следуйте рекомендациям по безопасности ниже.
Настройка firewalld
Если на сервере работает firewalld, откройте порты 11211 и 80 (если вы используете веб‑сервер):
firewall-cmd --add-port=11211/tcp --zone=public --permanent
firewall-cmd --add-port=80/tcp --zone=public --permanent
firewall-cmd --reloadПроверьте открытые порты:
firewall-cmd --list-portsВажно: открывать 11211 в публичной зоне безопасно только при использовании дополнительных слоёв защиты (VPN, IP‑фильтры, ACL). Открытый порт Memcached в интернете — распространённая векторная атака.
Установка PHP с поддержкой Memcached
Чтобы интегрировать Memcached с PHP, установите расширения. Сначала добавьте EPEL и репозиторий Remi:
dnf install epel-release -y
dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -yВключите нужный модуль PHP (пример для 7.4 Remi):
dnf module enable php:remi-7.4 -yУстановите расширения:
dnf install php-pecl-memcache php-pecl-memcached -y(Установите только то расширение, которое требуется вашему приложению — memcache и memcached отличаются API.)
Проверка интеграции с PHP
Установите Nginx и PHP при необходимости:
dnf install nginx php php-cli -ynano /var/www/html/info.phpВставьте:
Сохраните и создайте символическую ссылку в корень Nginx:
ln -s /var/www/html/info.php /usr/share/nginx/html/Запустите Nginx и включите автозапуск:
systemctl start nginx
systemctl enable nginxОткройте в браузере: http://your-server-ip/info.php и найдите секцию о Memcached.

Критерии приёмки
- Сервис memcached запущен и активен (systemctl status).
- Процесс слушает нужный интерфейс и порт (ps / ss).
- PHP‑модуль memcache/memcached загружен и виден в phpinfo().
- При тестовой записи/чтении через клиент данные корректно сохраняются и возвращаются.
Мини‑методология проверки (быстрые тесты)
- Убедитесь, что memcached слушает на 127.0.0.1:11211 (ss -ltnp | grep 11211).
- Написать простую проверку на PHP/Python, которая сохраняет ключ и читает его обратно.
- Нагрузка: протестировать под высокой частотой записей/чтений, отслеживая память memcached и количество подключений.
- Проверить поведение при переполнении кеша (LRU): записать объём данных больше CACHESIZE и убедиться, что старые ключи вытесняются.
Пример простого PHP теста:
addServer('127.0.0.1', 11211);
$mc->set('test-key', 'hello', 60);
echo $mc->get('test-key');
?>Чеклист администратора и разработчика
Администратор:
- Установить пакеты memcached и libmemcached.
- Проверить автозапуск и статус службы.
- Настроить firewalld/ACL и мониторинг.
- Настроить ротацию логов и алертинг по памяти/связям.
Разработчик:
- Уточнить нужное расширение PHP (memcache vs memcached).
- Добавить обработку ошибок при недоступности кеша.
- Тестировать поведение приложения при пропадании кеша.
Оператор DevOps:
- Настроить резервный план (fallback к БД при ошибке кеша).
- Обновлять пакеты и ревью конфигурации безопасности.
SOP: Быстрая инструкция установки (шаги)
- apt/ dnf install memcached libmemcached.
- systemctl enable –now memcached.
- Редактировать /etc/sysconfig/memcached (при необходимости).
- Открыть порты в firewalld (либо настроить только внутренний доступ).
- Установить PHP‑расширение и проверить phpinfo.
- Тест‑скрипт: set/get ключа.
Безопасность и лучшие практики
- Не выставляйте Memcached напрямую в публичную сеть. Используйте VPN, внутреннюю подсеть или Firewall CIDR.
- Привязывайте сервис к приватному интерфейсу: OPTIONS=”-l 127.0.0.1,::1”.
- Ограничьте доступ по IP и используйте сетевые ACL для приложений.
- Мониторьте использование памяти и число подключений — Memcached не персистентен.
- Планируйте поведение при потере кеша: graceful degradation.
Когда Memcached не подходит
- Нужна персистентность данных между перезапусками — Memcached хранит данные только в памяти.
- Требуется сложная модель консистентности и транзакции — лучше смотреть в сторону Redis или базы данных.
- Нужно сложное индексирование/поисковые запросы — используйте специализированные хранилища.
Альтернативы и сравнение (кратко)
- Redis: поддерживает персистентность, сложные структуры данных и более богатый набор команд.
- Varnish: специализированный HTTP‑кеш для ускорения отдачи страниц.
- In‑process caching (APCu): для одноузловых PHP‑решений быстрее, но не распределён.
Отладка и распространённые ошибки
- memcached не запускается — проверить журналы systemctl journalctl -u memcached.
- Не виден в phpinfo — убедиться, что установлено и загружено правильное расширение и перезапустить PHP-FPM/Nginx.
- Сброс кеша при перезапуске — обычное поведение: используйте репликацию данных в БД как источник правды.
Краткий глоссарий
- Memcached — распределённый кеш в оперативной памяти.
- CACHESIZE — объём кеша в мегабайтах.
- LRU — алгоритм вытеснения «наименее недавно использованные».
Итог
Memcached — простой и эффективный инструмент для ускорения динамических PHP‑приложений на Alma Linux 8. Установка и базовая настройка занимают несколько шагов: установить пакет, включить сервис, настроить конфигурацию и защиту сети, подключить PHP‑расширение и проверить работу через phpinfo и тестовые скрипты. Для продакшена обязательно ограничьте сетевой доступ и внедрите мониторинг.
Важно: если вам нужна помощь по конкретным ошибкам или примерам кода для вашего приложения, опишите окружение и требования — я помогу адаптировать конфигурацию.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента