Прилетела фриланс задачка по оптимизации 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
- В админ‑панели WordPress перейдите в «Плагины» -> «Добавить новый».
- Найдите «Redis Object Cache».
- Установите и активируйте плагин.

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

Настройка плагина 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. Через настройки плагина
- Перейдите в «Настройки» -> «Redis».
- Настройте параметры подключения.
- Нажмите «Enable Object Cache».

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

Дополнительные проверки
- Через командную строку 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);
Рекомендации по безопасности
- Установите пароль для Redis.
- Ограничьте доступ к порту 6379 (только localhost или доверенные IP).
- Используйте отдельные базы данных Redis для разных сайтов.
- Регулярно обновляйте Redis и PHP‑расширение.
Проверка эффективности
Инструменты для тестирования:
- GTmetrix — сравните скорость загрузки до и после настройки.
- Pingdom Tools — проверьте время ответа сервера.
- WebPageTest — проанализируйте производительность.
Ожидаемые результаты:
- снижение нагрузки на базу данных MySQL на 30–70 %;
- ускорение времени загрузки страниц на 20–50 %;
- улучшение показателей PageSpeed Insights.




