Redis

Что такоеRedis?

Redis — это открытое (open-source) хранилище структур данных в оперативной памяти (in-memory data structure store), которое используется как база данных, кеш, брокер сообщений и движок потоковой обработки данных. От классических дисковых СУБД Redis отличается микросекундной задержкой ответа и поддержкой богатого набора структур данных — строк, хешей, списков, множеств, сортированных множеств, потоков, JSON и векторных множеств.

Как это работает?

Redis хранит все данные в оперативной памяти в формате «ключ-значение», где каждый ключ — уникальный идентификатор, сопоставленный со значением одного из поддерживаемых типов данных. Архитектура построена на однопоточной событийной модели (single-threaded event loop), что обеспечивает атомарность всех операций и предсказуемую производительность. Для надёжности Redis поддерживает две схемы持久化: RDB (снапшоты данных на диск) и AOF (журнал всех операций записи). Горизонтальное масштабирование реализуется через кластеризацию с автоматическим шардированием данных, а высокая доступность — через репликацию «ведущий-ведомый» и режим Sentinel для автоматического переключения при сбоях.

Метрики и стандарты

Redis обеспечивает экстремальную производительность: в стандартных бенчмарках на одном экземпляре GET-операции достигают ~205 000 операций в секунду (QPS) со средней задержкой 0,31 мс, SET-операции — ~142 000QPS с задержкой 0,45 мс. Некоторые исследователи фиксируют пиковую пропускную способность до 4,2 млн операций в секунду с задержкой менее 1 мс. Версия Redis 8.6 (2026) обеспечивает более чем 5-кратный рост пропускной способности по сравнению с Redis 7.2 и снижение задержки для команд GET на коротких строках до 15%. 👉 Индустриальный ориентир: для кеширующих нагрузок целевой показатель Cache Hit Ratio (доля запросов, обслуженных из кеша) должен составлять не менее 90% — падение ниже этого порога сигнализирует о неэффективной стратегии кеширования или недостатке памяти.

Почему это важно для бизнеса?

Redis критически влияет на пользовательский опыт и конверсии: сокращение времени ответа базы данных с 50 мс (диск) до <1 мс (Redis) напрямую ускоряет загрузку страниц и снижает показатель отказов. В высоконагруженных проектах (интернет-магазины, SaaS-платформы) Redis разгружает основную базу данных, перенося до 80–90% запросов на чтение в оперативную память и предотвращая падение сайта при пиковых нагрузках. Для бизнеса это означает стабильную работу в часы распродаж, более низкие затраты на инфраструктуру (меньше реплик базы данных) и возможность масштабироваться без полной перестройки архитектуры.

Пример применения

Сценарий: Интернет-магазин на WooCommerce с каталогом из 50 000 товаров и пиковой нагрузкой 10 000 посетителей в час. Без кеширования каждый запрос к карточке товара выполняет 15–20 SQL-запросов к базе данных, что при 1000 одновременных пользователей приводит к тайм-аутам. Решение: Внедрён Redis Object Cache — результаты всех get_post_meta() и get_option() кешируются в Redis. Дополнительно настроен страничный кеш через MilliCache, сохраняющий готовый HTML в Redis. Результат: время генерации страницы сократилось с 800 мс до 45 мс, количество запросов к MySQL упало на 85%, сайт выдержал пиковую нагрузку без падений.

Как это реализуется в WordPress?

Redis в экосистеме WordPress внедряется на нескольких уровнях:

  • Кеширование объектов (Object Cache): плагин Redis Object Cache (более 1 млн установок) — подключает Redis как бэкенд для постоянного кеширования объектов WordPress, поддерживает PhpRedis, Predis и Relay. Для коммерческих проектов доступна версия Object Cache Pro с улучшенной производительностью и аналитикой.
  • Страничный кеш (FullPage Cache): плагин MilliCache от Roots — сохраняет полностью сгенерированные HTML-страницы в Redis и отдаёт их через advanced-cache.php до загрузки ядра WordPress, обеспечивая ответ в миллисекунды.
  • Сессии и транзиты: Redis может использоваться для хранения пользовательских сессий (плагин WP Redis) и временных данных (transients) через ту же объектную прослойку.
  • Настройка подключения: параметры соединения с Redis (хост, порт, пароль, индекс базы) задаются в wp-config.php через константы (WP_REDIS_HOST, WP_REDIS_PORT, WP_REDIS_DATABASE). Для продакшена рекомендуется выделять отдельную базу Redis под каждый сайт при мультисайтовой установке.
  • Серверный уровень: Redis-сервер устанавливается на VPS/dedicated сервере рядом с веб-сервером (LiteSpeed или Nginx) для минимизации сетевой задержки. Мониторинг производительности осуществляется через встроенную команду INFO, а также инструменты вроде LiteSpeed Cache (включает поддержку Redis для объектного кеша).

Связанные понятия

  • InMemory Database — база данных, хранящая все данные в оперативной памяти для максимальной скорости доступа
  • Object Cache (кеш объектов) — механизм WordPress для хранения результатов запросов к базе данных, ускоряющий повторные обращения
  • Cache Hit Ratio — процент запросов к кешу, которые были успешно обслужены из кеша (целевой порог — >90%)
  • Persistent Cache — постоянный кеш, сохраняющий данные между запросами (в отличие от временного кеша в оперативной памяти)
  • PhpRedis /Predis — драйверы для подключения PHP-приложений (включая WordPress) к Redis
  • Cache Invalidation — механизм очистки или обновления кеша при изменении данных (например, при обновлении товара в WooCommerce)