// SSD VPS

Как установить и настроить Memcached на VPS Linux: полное руководство — CLIQHOST

15 октября 2026 г. · by Alex M.

Как установить и настроить Memcached на VPS Linux: полное руководство — CLIQHOST

Производительность веб-приложения во многом зависит от скорости доступа к часто запрашиваемым данным. Каждый запрос к базе данных потребляет ресурсы и добавляет задержку. Memcached решает именно эту проблему: он временно хранит результаты запросов в оперативной памяти, позволяя обслуживать повторные запросы за микросекунды, а не миллисекунды.

В этом руководстве вы узнаете, как установить, настроить и оптимизировать Memcached на VPS SSD с Ubuntu 22.04, включая интеграцию с PHP и WordPress.


Что такое Memcached и зачем он нужен?

Memcached — это распределённая система кеширования с открытым исходным кодом, работающая в оперативной памяти. Она выступает промежуточным слоем между приложением и базой данных:

  • Резкое сокращение SQL-запросов — часто используемые данные отдаются прямо из RAM
  • Минимальная задержка — время ответа менее 1 мс для данных из кеша
  • Горизонтальное масштабирование — несколько экземпляров Memcached образуют кластер
  • Широкая совместимость — нативная поддержка PHP, Python, Ruby, Node.js, Java

Если вы запускаете WordPress, WooCommerce, Drupal или любое приложение с высоким трафиком на VPS NVMe, Memcached способен значительно снизить нагрузку на сервер.


Предварительные требования

Перед началом убедитесь, что у вас есть:

  • VPS Linux с Ubuntu 20.04 или 22.04 (руководство проверено на Ubuntu 22.04 LTS)
  • Доступ root или пользователь с правами sudo
  • PHP 7.4+ (если интегрируете с PHP-приложениями)
  • Активное SSH-подключение

Если у вас ещё нет сервера, вы можете быстро заказать VPS SSD в CLIQHOST с предустановленной Ubuntu.


Шаг 1: Обновление системы и установка Memcached

Перед установкой обновите пакеты системы:

sudo apt update && sudo apt upgrade -y

Установите Memcached и необходимую библиотеку для PHP-расширения:

sudo apt install memcached libmemcached-tools -y

Проверьте, запустился ли сервис автоматически:

sudo systemctl status memcached

Вы должны увидеть active (running). Если нет, запустите вручную:

sudo systemctl start memcached
sudo systemctl enable memcached

Шаг 2: Настройка основного конфигурационного файла

Главный конфигурационный файл находится по адресу /etc/memcached.conf. Откройте его:

sudo nano /etc/memcached.conf

Наиболее важные директивы:

# Объём выделяемой памяти (в МБ)
-m 256

# Порт прослушивания (по умолчанию 11211)
-p 11211

# Пользователь, под которым запускается процесс
-u memcache

# Адрес прослушивания — ВАЖНО: только localhost для безопасности
-l 127.0.0.1

# Максимальное количество одновременных соединений
-c 1024

# Максимальный размер одного объекта в кеше (в МБ)
-I 5m

Рекомендации по выделению памяти

RAM VPS Память для Memcached
1 ГБ 128–256 МБ
2 ГБ 256–512 МБ
4 ГБ 512 МБ – 1 ГБ
8 ГБ+ 1–2 ГБ

На VPS NVMe с выделенными ресурсами можно выделить больше памяти без ущерба для других сервисов.

После изменений перезапустите Memcached:

sudo systemctl restart memcached

Шаг 3: Безопасность экземпляра Memcached

Memcached не имеет встроенной аутентификации в стандартных версиях, поэтому защита на сетевом уровне критически важна.

3.1 — Убедитесь, что сервис слушает только localhost

Проверьте, что директива -l в /etc/memcached.conf установлена в 127.0.0.1 (не 0.0.0.0).

3.2 — Заблокируйте порт 11211 через UFW

sudo ufw deny 11211
sudo ufw allow OpenSSH
sudo ufw enable

3.3 — Проверка открытых портов

sudo ss -tlnp | grep memcached

Правильный вывод:

LISTEN  0  1024  127.0.0.1:11211  0.0.0.0:*

Если порт Memcached открыт публично, ваш сервер может быть использован для UDP-амплификационных DDoS-атак. Сервис администрирования серверов от CLIQHOST включает аудит безопасности для подобных конфигураций.


Шаг 4: Установка PHP-расширения для Memcached

Для подключения PHP-приложений к Memcached необходимо расширение php-memcached:

sudo apt install php-memcached -y

Для конкретной версии PHP (например, 8.1):

sudo apt install php8.1-memcached -y

Перезапустите веб-сервер:

# Для Nginx + PHP-FPM
sudo systemctl restart php8.1-fpm
sudo systemctl restart nginx

# Для Apache
sudo systemctl restart apache2

Проверьте, что расширение активно:

php -m | grep memcached

Должно вернуть: memcached


Шаг 5: Тестирование Memcached из командной строки

Инструмент memcstat из пакета libmemcached-tools позволяет проверить состояние сервера:

memcstat --servers=127.0.0.1:11211

Альтернативно, используя telnet для быстрой проверки:

telnet 127.0.0.1 11211

В консоли telnet введите:

set test_key 0 60 5
hello
get test_key

Ожидаемый ответ:

STORED
VALUE test_key 0 5
hello
END

Memcached работает корректно! Выйдите из telnet командой quit.


Шаг 6: Интеграция Memcached с WordPress

WordPress может использовать Memcached как бэкенд для Object Cache, исключая повторные запросы к базе данных MySQL/MariaDB.

6.1 — Установка плагина Memcached Object Cache

Вариант 1: Специализированный плагин «Memcached Object Cache»

Скачайте файл object-cache.php с WordPress.org и поместите его в /wp-content/object-cache.php:

cd /var/www/html/wp-content/
wget https://raw.githubusercontent.com/tollmanz/wordpress-memcached-backend/master/object-cache.php

Добавьте в wp-config.php перед строкой /* That's all, stop editing! */:

$memcached_servers = array(
    'default' => array(
        '127.0.0.1:11211'
    )
);

Вариант 2: W3 Total Cache

Из панели администратора WordPress:

  1. Перейдите в Plugins → Add New и найдите W3 Total Cache
  2. Установите и активируйте плагин
  3. Перейдите в Performance → General Settings
  4. В разделе Object Cache выберите Memcached из выпадающего списка
  5. Сохраните и протестируйте

Если вы запускаете WordPress на оптимизированном WordPress-хостинге или на VPS, эта конфигурация значительно снижает TTFB (Time To First Byte).


Шаг 7: Мониторинг статистики Memcached

Memcached предоставляет детальную статистику, доступную в реальном времени.

Статистика через telnet

telnet 127.0.0.1 11211
stats

Наиболее важные метрики:

Метрика Описание
curr_items Количество объектов в кеше
get_hits Запросы, обслуженные из кеша
get_misses Запросы, не найденные в кеше (обращение к БД)
bytes Используемая память (байты)
limit_maxbytes Максимальный лимит памяти
evictions Объекты, вытесненные из кеша из-за нехватки памяти

Расчёт «hit rate»

hit_rate = get_hits / (get_hits + get_misses) * 100

Hit rate выше 90% означает эффективную конфигурацию. Если evictions постоянно растут, увеличьте значение -m в конфигурации.

Мониторинг через phpMemcachedAdmin

Можно установить веб-интерфейс phpMemcachedAdmin для графической визуализации:

cd /var/www/html
git clone https://github.com/elijaa/phpmemcachedadmin.git

Обязательно настройте ограниченный доступ (HTTP Basic Auth) перед публикацией.


Шаг 8: Продвинутые оптимизации

8.1 — Включение бинарного протокола

Бинарный протокол Memcached эффективнее ASCII. Добавьте в /etc/memcached.conf:

-B binary

⚠️ Убедитесь, что PHP-клиент (расширение php-memcached) поддерживает бинарный протокол — расширение php-memcache (без «d») поддерживает только ASCII.

8.2 — Увеличение числа потоков

На VPS с несколькими ядрами CPU можно увеличить количество потоков:

-t 4

8.3 — Настройка размера слотов

Если вы кешируете крупные объекты (целые HTML-страницы), настройте:

-f 1.25
-n 128

На VPS с выделенными ресурсами эти оптимизации ощутимо влияют на производительность при высоких нагрузках.


Memcached против Redis: что выбрать?

Часто задаваемый вопрос: когда использовать Memcached, а когда Redis?

Критерий Memcached Redis
Типы данных Только строки Строка, список, хеш, множество, сортированное множество
Персистентность Нет Да (опционально)
Нативный кластер Да (на стороне клиента) Да (Redis Cluster)
Потребление памяти Меньше Немного больше
Идеально для Простой кеш, сессии Сложный кеш, pub/sub, очереди

Для простого WordPress Object Cache Memcached достаточен и проще в настройке. Для более сложных приложений (очереди, pub/sub, персистентные данные) предпочтителен Redis.


Устранение частых проблем

Memcached не запускается

sudo journalctl -u memcached -n 50

Частая причина: порт 11211 уже занят другим процессом. Проверьте:

sudo ss -tlnp | grep 11211

PHP-расширение не загружается

php --ini | grep memcached

Убедитесь, что .ini-файл расширения находится в директории conf.d PHP.

Низкий hit rate

  • Увеличьте выделяемую память
  • Проверьте TTL (время жизни) кешируемых объектов
  • Убедитесь, что ключ кеша формируется последовательно

Заключение

Memcached — это простое, надёжное и эффективное решение для ускорения веб-приложений на PHP. Установка на VPS Linux занимает менее 10 минут, а прирост производительности может быть значительным — особенно для сайтов с высоким трафиком и большими базами данных.

Если вы хотите надёжную основу для своих проектов, выберите VPS SSD или VPS NVMe от CLIQHOST с гарантированными ресурсами, технической поддержкой и возможностью полного администрирования сервера. Нужна помощь с настройкой? Свяжитесь с командой CLIQHOST — мы всегда готовы помочь.

SHARE
// what clients say

What Our Clients Say

Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.

★★★★★

"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău