hostprofi.ru
Подобрать хостинг
Термин·буква M

Memcached на сайте

краткое определение

Memcached на сайте — использование in-memory кэш-сервера Memcached для хранения результатов запросов к БД, объектов приложения и фрагментов страниц в оперативной памяти сервера, что ускоряет генерацию динамических страниц.

Memcached — распределённый in-memory кэш с простым протоколом «ключ–значение». На практике он снижает нагрузку на базу данных (MySQL, PostgreSQL): вместо повторного выполнения одного и того же SQL-запроса приложение получает результат из оперативной памяти за доли миллисекунды. Разница в скорости — 50–100 мкс против 5–20 мс у диска.

Как работает

Схема работы:

  1. Приложение получает запрос (например, страница категории интернет-магазина).
  2. Генерируется ключ кэша: MD5-хэш или строка вида category:electronics:page:1.
  3. Проверяется наличие ключа в Memcached (cache hit). Если данные есть — возвращаются мгновенно.
  4. При отсутствии (cache miss) выполняется запрос к БД, результат сохраняется в Memcached с TTL (10 минут — 24 часа, зависит от данных) и возвращается клиенту.
  5. При обновлении данных приложение сбрасывает соответствующий ключ или весь кэш.

Для WordPress наиболее распространённый сценарий — объектный кэш (object cache). WordPress имеет встроенный object cache, но по умолчанию он non-persistent (живёт только в рамках одного запроса). Установка drop-in файла object-cache.php с плагином «Memcached Object Cache» подключает постоянное хранение в Memcached: опции сайта, пользователи, термины, посты и метаданные кэшируются между запросами.

Memcached работает на порту 11211/TCP. На хостинге доступность Memcached зависит от тарифного плана: на shared-хостинге обычно недоступен или предоставляется со строгими лимитами памяти (32–128 МБ). На VPS/VDS Memcached устанавливается самостоятельно.

История

Memcached создан Брэдом Фицпатриком в 2003 году для ускорения LiveJournal, который испытывал проблемы с нагрузкой на базу данных при 1 млн пользователей. Исходный код опубликован как open source. К 2004 году Memcached использовали Facebook, Wikipedia, YouTube. Сегодня Memcached поддерживает мультипоточность (с версии 1.5, 2017 год) и протоколы Text и Binary.

Отличия от Redis

Memcached vs Redis: Memcached хранит только строки (до 1 МБ), Redis поддерживает структуры данных (списки, множества, хэши). Memcached не сохраняет данные после перезапуска — при ребуте кэш пуст. Redis поддерживает персистентность (RDB/AOF). Для простого кэширования страниц и объектов — оба подходят, Redis предпочтительнее для очередей задач, сессий и сложных структур.

На что обращать внимание

Выделяйте Memcached достаточно памяти: при заполнении пула сервер вытесняет старые записи по LRU. Для WordPress-магазина с 10 000+ товаров минимум 256 МБ. Не храните в Memcached чувствительные данные без шифрования — базовый протокол не имеет аутентификации. Проверяйте, что порт 11211 закрыт для внешних подключений (iptables или UFW).

Memcached vs Redis: когда использовать что

ПараметрMemcachedRedis
Типы данныхтолько строкистроки, хеши, списки, множества
Персистентностьнет (только RAM)да (RDB, AOF)
Кластеризацияклиентская (нет built-in)Redis Cluster (built-in)
Pub/Subнетда
Потребление памятименьшебольше

Memcached на сайте оптимален для простого кеширования HTML-фрагментов, запросов к БД, сессий при горизонтальном масштабировании. На типовом VPS Memcached запускается командой apt install memcached и потребляет от 64 MB RAM. Для WordPress плагин W3 Total Cache или LiteSpeed Cache поддерживают Memcached. При наличии сложных структур данных выбирайте Redis.

Другие термины