15 октября 2026 г. · by Alex M.
Производительность веб-приложения во многом зависит от скорости доступа к часто запрашиваемым данным. Каждый запрос к базе данных потребляет ресурсы и добавляет задержку. Memcached решает именно эту проблему: он временно хранит результаты запросов в оперативной памяти, позволяя обслуживать повторные запросы за микросекунды, а не миллисекунды.
В этом руководстве вы узнаете, как установить, настроить и оптимизировать Memcached на VPS SSD с Ubuntu 22.04, включая интеграцию с PHP и WordPress.
Memcached — это распределённая система кеширования с открытым исходным кодом, работающая в оперативной памяти. Она выступает промежуточным слоем между приложением и базой данных:
Если вы запускаете WordPress, WooCommerce, Drupal или любое приложение с высоким трафиком на VPS NVMe, Memcached способен значительно снизить нагрузку на сервер.
Перед началом убедитесь, что у вас есть:
sudoЕсли у вас ещё нет сервера, вы можете быстро заказать VPS SSD в CLIQHOST с предустановленной Ubuntu.
Перед установкой обновите пакеты системы:
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
Главный конфигурационный файл находится по адресу /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
Memcached не имеет встроенной аутентификации в стандартных версиях, поэтому защита на сетевом уровне критически важна.
Проверьте, что директива -l в /etc/memcached.conf установлена в 127.0.0.1 (не 0.0.0.0).
sudo ufw deny 11211
sudo ufw allow OpenSSH
sudo ufw enable
sudo ss -tlnp | grep memcached
Правильный вывод:
LISTEN 0 1024 127.0.0.1:11211 0.0.0.0:*
Если порт Memcached открыт публично, ваш сервер может быть использован для UDP-амплификационных DDoS-атак. Сервис администрирования серверов от CLIQHOST включает аудит безопасности для подобных конфигураций.
Для подключения 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
Инструмент 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.
WordPress может использовать Memcached как бэкенд для Object Cache, исключая повторные запросы к базе данных MySQL/MariaDB.
Вариант 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:
Если вы запускаете WordPress на оптимизированном WordPress-хостинге или на VPS, эта конфигурация значительно снижает TTFB (Time To First Byte).
Memcached предоставляет детальную статистику, доступную в реальном времени.
telnet 127.0.0.1 11211
stats
Наиболее важные метрики:
| Метрика | Описание |
|---|---|
curr_items |
Количество объектов в кеше |
get_hits |
Запросы, обслуженные из кеша |
get_misses |
Запросы, не найденные в кеше (обращение к БД) |
bytes |
Используемая память (байты) |
limit_maxbytes |
Максимальный лимит памяти |
evictions |
Объекты, вытесненные из кеша из-за нехватки памяти |
hit_rate = get_hits / (get_hits + get_misses) * 100
Hit rate выше 90% означает эффективную конфигурацию. Если evictions постоянно растут, увеличьте значение -m в конфигурации.
Можно установить веб-интерфейс phpMemcachedAdmin для графической визуализации:
cd /var/www/html
git clone https://github.com/elijaa/phpmemcachedadmin.git
Обязательно настройте ограниченный доступ (HTTP Basic Auth) перед публикацией.
Бинарный протокол Memcached эффективнее ASCII. Добавьте в /etc/memcached.conf:
-B binary
⚠️ Убедитесь, что PHP-клиент (расширение
php-memcached) поддерживает бинарный протокол — расширениеphp-memcache(без «d») поддерживает только ASCII.
На VPS с несколькими ядрами CPU можно увеличить количество потоков:
-t 4
Если вы кешируете крупные объекты (целые HTML-страницы), настройте:
-f 1.25
-n 128
На VPS с выделенными ресурсами эти оптимизации ощутимо влияют на производительность при высоких нагрузках.
Часто задаваемый вопрос: когда использовать Memcached, а когда Redis?
| Критерий | Memcached | Redis |
|---|---|---|
| Типы данных | Только строки | Строка, список, хеш, множество, сортированное множество |
| Персистентность | Нет | Да (опционально) |
| Нативный кластер | Да (на стороне клиента) | Да (Redis Cluster) |
| Потребление памяти | Меньше | Немного больше |
| Идеально для | Простой кеш, сессии | Сложный кеш, pub/sub, очереди |
Для простого WordPress Object Cache Memcached достаточен и проще в настройке. Для более сложных приложений (очереди, pub/sub, персистентные данные) предпочтителен Redis.
sudo journalctl -u memcached -n 50
Частая причина: порт 11211 уже занят другим процессом. Проверьте:
sudo ss -tlnp | grep 11211
php --ini | grep memcached
Убедитесь, что .ini-файл расширения находится в директории conf.d PHP.
Memcached — это простое, надёжное и эффективное решение для ускорения веб-приложений на PHP. Установка на VPS Linux занимает менее 10 минут, а прирост производительности может быть значительным — особенно для сайтов с высоким трафиком и большими базами данных.
Если вы хотите надёжную основу для своих проектов, выберите VPS SSD или VPS NVMe от CLIQHOST с гарантированными ресурсами, технической поддержкой и возможностью полного администрирования сервера. Нужна помощь с настройкой? Свяжитесь с командой CLIQHOST — мы всегда готовы помочь.
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."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."