wplearn.ru wordpress WP Learn

Как установить и настроить Redis для кэширования в WordPress

Кэширование — один из ключевых способов ускорить работу вашего сайта на WordPress. Среди множества решений Redis выделяется своей высокой производительностью и гибкостью. В этой статье мы подробно разберем, как установить Redis на сервер, настроить его для работы с WordPress и подключить с помощью плагинов и собственного кода.

Почему Redis — лучшее решение для кэширования WordPress

Redis — это база данных в памяти, которая позволяет хранить данные очень быстро и эффективно. В отличие от файлового кэширования, Redis работает значительно быстрее и снижает нагрузку на базу данных. Это особенно важно для сайтов с высокой посещаемостью.

Основные преимущества Redis:

  • Быстрый доступ к данным за счет хранения в памяти.
  • Поддержка различных структур данных (строки, хеши, списки и т.д.).
  • Простая интеграция с WordPress через специальные плагины.
  • Поддержка автоматического истечения срока кэша.

Для WordPress Redis чаще всего используется для объектного кэширования, что позволяет значительно ускорить выполнение PHP-скриптов.

Установка Redis на сервер Ubuntu

Для начала нужно установить сам сервер Redis. Рассмотрим процесс на примере Ubuntu 20.04, но для других дистрибутивов команды будут похожими.

1. Обновляем список пакетов и устанавливаем Redis:

sudo apt update
sudo apt install redis-server

2. Проверяем, что Redis запущен и работает:

sudo systemctl status redis

3. Для повышения безопасности откроем конфигурационный файл /etc/redis/redis.conf и убедимся, что bind настроен на localhost:

bind 127.0.0.1 ::1

4. Перезапускаем Redis, чтобы применить изменения:

sudo systemctl restart redis

Теперь Redis установлен и готов принимать подключения локально.

Настройка WordPress для использования Redis

Для интеграции Redis с WordPress есть несколько популярных плагинов. Рассмотрим два основных варианта.

Плагин Redis Object Cache

Это самый распространенный плагин, который позволяет включить объектный кэш через Redis.

1. Установите и активируйте плагин Redis Object Cache из репозитория WordPress.

2. Добавьте в файл wp-config.php следующие строки, чтобы активировать поддержку Redis:

define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_CACHE_KEY_SALT', 'wplearn:');

3. В админке WordPress перейдите в раздел Настройки > Redis и нажмите кнопку «Enable Object Cache».

4. Проверьте статус подключения — он должен быть "Connected".

Плагин Wp Redis

Еще один популярный плагин с похожим функционалом. Его настройка аналогична — установка, активация, добавление настроек в wp-config.php.

Реализация кастомного объектного кэширования с помощью Redis и PHP

Если вы хотите более гибко управлять кэшированием, можно написать собственный класс для работы с Redis в WordPress.

Ниже пример класса с префиксом WPLearn_, который реализует базовые методы для установки, получения и удаления данных из Redis:

class WPLearn_Redis_Cache {
  private $redis;
  private $prefix;
  public function __construct($host = '127.0.0.1', $port = 6379, $prefix = 'wplearn:') {
    $this->redis = new Redis();
    $this->redis->connect($host, $port);
    $this->prefix = $prefix;
  }
  public function set($key, $value, $ttl = 3600) {
    $key = $this->prefix . $key;
    return $this->redis->set($key, serialize($value), $ttl);
  }
  public function get($key) {
    $key = $this->prefix . $key;
    $value = $this->redis->get($key);
    return $value ? unserialize($value) : false;
  }
  public function delete($key) {
    $key = $this->prefix . $key;
    return $this->redis->del($key);
  }
}

Пример использования:

$cache = new WPLearn_Redis_Cache();

// Сохраняем данные
$cache->set('recent_posts', $recent_posts_array, 600);

// Получаем данные из кэша
$posts = $cache->get('recent_posts');
if (!$posts) {
  // Если в кэше пусто, получаем из базы и сохраняем
  $posts = get_posts(['numberposts' => 10]);
  $cache->set('recent_posts', $posts, 600);
}

Дополнительные советы по работе с Redis в WordPress

Мониторинг и отладка Redis

Для проверки активности Redis можно использовать команду redis-cli monitor — она показывает все запросы в режиме реального времени. Это поможет понять, используются ли кэшированные данные.

В плагинах часто есть инструменты для мониторинга количества попаданий и промахов кэша, что полезно для оптимизации.

Управление временем жизни кэша

Очень важно выбирать разумное время жизни (TTL) для разных типов данных. Например, кэш для популярных постов можно держать дольше, а для динамического контента — меньше.

В плагинах это обычно настраивается в настройках, при кастомной реализации TTL задается программно.

Безопасность и ограничения

Не открывайте Redis для внешних подключений без защиты, чтобы избежать утечки данных.

Также убедитесь, что в wp-config.php добавлен уникальный префикс для кэша, чтобы избежать конфликтов при использовании нескольких сайтов или многосайтовой установки.

Заключение

Использование Redis для кэширования в WordPress — это мощный способ существенно повысить скорость сайта и уменьшить нагрузку на сервер. Правильная установка, настройка плагинов и, при необходимости, написание собственного кода позволит вам гибко управлять кэшированием и обеспечить стабильную работу проекта.

×
День SEO
Время сделать подарок своему WordPress!
-20% на премиум

шаблоны и плагины

Порадуй свой сайт ⋙