Блог / Статьи

Полезная информация для вашего хостинга

Как настроить Redis для ускорения работы WordPress и Joomla

Как настроить Redis для ускорения работы WordPress и Joomla

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

Что такое Redis?

Redis (REmote DIctionary Server) — это сетевое хранилище данных с открытым исходным кодом, работающее по принципу «ключ-значение». По сути, это база данных, но значительно упрощённая и более быстрая, поскольку в ней отсутствуют связи между данными, а также используется подход NoSQL.

Redis имеет много общего с Memcached, поскольку тоже хранит данные в оперативной памяти и обеспечивает доступ к ним по ключу. Однако у Redis есть важные отличия:

- Сохранение на диск: данные можно сохранять на диск, что минимизирует риск потери информации при сбоях.
- Разнообразие типов данных: помимо строк (strings), Redis поддерживает списки (lists), множества (sets), хеш-таблицы (hashes) и упорядоченные множества (sorted sets).

Управление временем жизни данных

Redis позволяет задавать время жизни данных двумя способами:
- Удаление в конкретный момент времени.
- Удаление через заданный промежуток времени.
По умолчанию данные хранятся бессрочно.

Однопоточность Redis

Redis — однопоточный сервер, что обеспечивает ряд преимуществ:
- Атомарность операций: транзакции выполняются полностью или не выполняются вовсе.
- Пакетная обработка команд: можно отправлять группы команд и получать результаты одним пакетом.

Несмотря на однопоточность, Redis работает крайне быстро и способен обрабатывать около 28 тысяч запросов в секунду.

Основные случаи использования

Благодаря высокой скорости, Redis идеально подходит для хранения:
- Счётчиков (например, количества просмотров страниц).
- Временных данных.
- Кэша для сайта.
- PHP-сессий.

Подключение Redis к WordPress

Шаг 1. Изменение wp-config.php
Для подключения Redis к CMS WordPress нужно добавить директивы в файл `wp-config.php`. Откройте файл через файловый менеджер и добавьте следующие строки после первой строки `<?php`:

rediswp3

```php
define('WP_CACHE_KEY_SALT', 'my-site.com_');
define('WP_CACHE', true);
```

 Где `'my-site.com_'` — это имя вашего сайта или уникальный префикс для хранения данных в Redis. Это важно, если Redis используется для нескольких сайтов. Сохраните изменения.

rediswp4

Шаг 2. Установка и активация плагина
1. Перейдите в административную панель сайта. Например, `http://my-site.com/wp-admin`.
2. Выберите пункт Плагины → Добавить новый.

rediswp5
3. Найдите плагин "Redis Object Cache" через поиск.

rediswp6
4. Установите и активируйте плагин.

rediswp7
5. Перейдите в настройки плагина и включите его.

rediswp8

После этого WordPress будет подключён к Redis, что подтвердится соответствующим сообщением.

rediswp9

Шаг 3. Проверка работы
Проверьте, что данные пишутся в Redis:

127.0.0.1:6379> keys my-site.com*

Вы должны увидеть список ключей, соответствующих данным вашего сайта. 

Шаг 4. Тест производительности
Сравните производительность сайта до и после подключения Redis с помощью утилиты Siege. Пример результатов:

Без Redis:
- Время самой долгой транзакции: 64.71 сек
- Количество запросов: 10,638

С Redis:
- Время самой долгой транзакции: 5.11 сек
- Количество запросов: 11,849

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

Подключение Redis к Joomla

Шаг 1. Вход в административную панель
Зайдите в административную часть сайта Joomla: `http://my-site.com/administrator/`.

Шаг 2. Настройка кэширования
В версии Joomla 3.x и выше поддерживается подключение Redis для кэширования данных. Для этого:
1. Перейдите в меню Система → Общие настройки.

redisju12
2. На открывшейся странице выберите вкладку Система.

redisju13
3. Установите значение "кеш" в поле Стандартное кеширование.

redisju14
4. Выберите Redis в поле Обработчик кеширования.

5. Оставьте остальные настройки по умолчанию.

redisju15

6. Сохраните изменения.

Шаг 3. Проверка работы
Подключитесь к Redis и убедитесь, что данные пишутся в хранилище:

127.0.0.1:6379> keys *

Вы должны увидеть ключи, связанные с кэшированием Joomla.

 

Шаг 4. Тест производительности
Сравните производительность сайта до и после подключения Redis с помощью утилиты Siege. Пример результатов:

Без Redis:
- Время самой долгой транзакции: 54.82 сек
- Количество запросов: 8,165

С Redis:
- Время самой долгой транзакции: 8.68 сек
- Количество запросов: 9,442

Использование Redis значительно уменьшает время обработки запросов и увеличивает общую производительность сайта.