Гид по технологиям

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

• 5 min read • DevOps • Обновлено 21 Nov 2025
Установка Memcached на Alma Linux 8
Установка Memcached на Alma Linux 8

Логотип или схема Memcached

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 -y
nano /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.

Страница phpinfo с информацией о Memcached

Критерии приёмки

  • Сервис memcached запущен и активен (systemctl status).
  • Процесс слушает нужный интерфейс и порт (ps / ss).
  • PHP‑модуль memcache/memcached загружен и виден в phpinfo().
  • При тестовой записи/чтении через клиент данные корректно сохраняются и возвращаются.

Мини‑методология проверки (быстрые тесты)

  1. Убедитесь, что memcached слушает на 127.0.0.1:11211 (ss -ltnp | grep 11211).
  2. Написать простую проверку на PHP/Python, которая сохраняет ключ и читает его обратно.
  3. Нагрузка: протестировать под высокой частотой записей/чтений, отслеживая память memcached и количество подключений.
  4. Проверить поведение при переполнении кеша (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: Быстрая инструкция установки (шаги)

  1. apt/ dnf install memcached libmemcached.
  2. systemctl enable –now memcached.
  3. Редактировать /etc/sysconfig/memcached (при необходимости).
  4. Открыть порты в firewalld (либо настроить только внутренний доступ).
  5. Установить PHP‑расширение и проверить phpinfo.
  6. Тест‑скрипт: 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 и тестовые скрипты. Для продакшена обязательно ограничьте сетевой доступ и внедрите мониторинг.

Важно: если вам нужна помощь по конкретным ошибкам или примерам кода для вашего приложения, опишите окружение и требования — я помогу адаптировать конфигурацию.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро