Настройка кэширования WordPress при помоши Redis

Оцените статью

Прилетела фриланс задачка по оптимизации WordPress сайта. Как обычно на будущее все запишем, чтобы в следующий раз на чиле и расслабоне сделать.

Установка и настройка Redis‑сервера

# Установка Redis
# apt update
# apt install redis-server

# Запуск и включение автозапуска
# systemctl start redis-server
# systemctl enable redis-server

# Проверка статуса
# systemctl status redis-server

Настройка Redis (опционально)

Отредактируйте /etc/redis/redis.conf.

  • установите пароль (requirepass ваш_пароль);
  • настройте лимиты памяти (maxmemory 256mb, maxmemory-policy allkeys-lru).

Установка PHP‑расширения для Redis

# apt install php-redis

Проверка установки

Создайте файл info.php.

<?php
phpinfo();
?>

Откройте в браузере и убедитесь, что раздел Redis присутствует.

Установка плагина Redis Object Cache

  1. В админ‑панели WordPress перейдите в «Плагины» -> «Добавить новый».
  2. Найдите «Redis Object Cache».
  3. Установите и активируйте плагин.
Установка плагина в WordPress

После установки плагин не настроен.

Плагин кэширования не работает.

Настройка плагина Redis Object Cache

Способ 1. Через wp‑config.php

Добавьте в файл wp-config.php (перед строкой /* That’s all, stop editing! Happy publishing. */):

// Включение Redis Object Cache
define('WP_REDIS_CLIENT', 'predis'); // или 'phpredis'
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', '6379');
define('WP_REDIS_DATABASE', '0');
// Если установлен пароль в Redis:
// define('WP_REDIS_PASSWORD', 'ваш_пароль');
// Таймаут подключения (в секундах):
// define('WP_REDIS_TIMEOUT', 1);
// Таймаут чтения (в секундах):
// define('WP_REDIS_READ_TIMEOUT', 1);

Способ 2. Через настройки плагина

  1. Перейдите в «Настройки» -> «Redis».
  2. Настройте параметры подключения.
  3. Нажмите «Enable Object Cache».
Активируем объектный кэш

Проверка работы

  1. В админ‑панели WordPress перейдите в «Настройки» → «Redis».
  2. Убедитесь, что статус — «Connected».
  3. Проверьте статистику использования кэша.
Кэш работает.

Дополнительные проверки

  • Через командную строку Redis: redis-cli > INFO > KEYS *
  • Через инструменты разработчика браузера: проверьте заголовки ответа сервера (ищите X-Cache: HIT).

Дополнительные настройки и оптимизация

1. Настройка префикса ключей

В wp-config.php:

define('WP_REDIS_PREFIX', 'mysite_');

2. Группировка соединений (для мультисайта)

define('WP_REDIS_CLUSTER', [
    'tcp://127.0.0.1:6379',
    'tcp://127.0.0.1:6380'
]);

3. Настройка таймаутов

define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);

4. Использование Unix‑сокета (быстрее TCP)

define('WP_REDIS_UNIX_SOCKET', '/var/run/redis/redis.sock');

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

Проблема 1. Не удаётся подключиться к Redis

  • Проверьте, запущен ли Redis: 
    # systemctl status redis-server.
  • Убедитесь, что порт 6379 открыт.
  • Проверьте настройки хоста и порта в wp-config.php.

Проблема 2. Ошибка «PHP Fatal error: Uncaught RedisException: Connection refused»

  • Проверьте, слушает ли Redis нужный порт: 
    # netstat -tlnp | grep 6379.
  • Убедитесь, что PHP‑расширение Redis установлено: 
    # php -m | grep redis.

Проблема 3. Кэширование не работает

  • Проверьте логи WordPress и веб‑сервера.
  • Убедитесь, что плагин активирован.
  • Очистите кэш через настройки плагина.

Проблема 4. Высокая нагрузка на Redis

  • Проверьте использование памяти: 
    # redis-cli info memory
  • Настройте лимиты в 
    # redis.conf
  • Рассмотрите использование политики вытеснения 
    # maxmemory-policy allkeys-lru

Мониторинг и оптимизация

1. Мониторинг использования Redis

# redis-cli info
# redis-cli info memory
# redis-cli info stats

2. Очистка кэша

  • Через админ‑панель WordPress: «Настройки» → «Redis» → «Flush Cache».
  • Через командную строку: 
    # redis-cli FLUSHDB

3. Автоматическое очищение кэша

Добавьте в wp-config.php:

define('WP_REDIS_FLUSH_ON_SAVE_POST', true);

Рекомендации по безопасности

  1. Установите пароль для Redis.
  2. Ограничьте доступ к порту 6379 (только localhost или доверенные IP).
  3. Используйте отдельные базы данных Redis для разных сайтов.
  4. Регулярно обновляйте Redis и PHP‑расширение.

Проверка эффективности

Инструменты для тестирования:

  • GTmetrix — сравните скорость загрузки до и после настройки.
  • Pingdom Tools — проверьте время ответа сервера.
  • WebPageTest — проанализируйте производительность.

Ожидаемые результаты:

  • снижение нагрузки на базу данных MySQL на 30–70 %;
  • ускорение времени загрузки страниц на 20–50 %;
  • улучшение показателей PageSpeed Insights.

Похожие записи

Хранилище артефактов (Docker) Cloud.ru

Продолжаем разбираться с облачной платформой cloud.ru и сегодня займемся хранилищем артефактов. Достоинства хранилища артефактов Docker в Cloud.ru 1. Интеграция с экосистемой Cloud.ru 2. Безопасность 3. Надёжность и доступность 4. Производительность…

Хранение медиа-файлов WordPress в S3-хранилище

В продолжении перевода своих ресурсов в облака следующим этапом необходимо настроить хранение медиа-файлов WordPress в хранилище S3 в облаке Cloud.ru. Задачка довольно типовая, но есть нюансы. Прежде всего зарегистрируем сервисный…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Хранилище артефактов (Docker) Cloud.ru

Хранилище артефактов (Docker) Cloud.ru

Хранение медиа-файлов WordPress в S3-хранилище

Хранение медиа-файлов WordPress в S3-хранилище

Настройка кэширования WordPress при помоши Redis

Настройка кэширования WordPress при помоши Redis

Создание кластера Managed Kubernetes в облаке Cloud.ru

Создание кластера Managed Kubernetes в облаке Cloud.ru

Интеграция FreeIPA DNS и BIND DNS

Интеграция FreeIPA DNS и BIND DNS

Настройка централизованной авторизации в домене IPA на RedOS 8

Настройка централизованной авторизации в домене IPA на RedOS 8