Redis — это бессхемное хранилище данных «ключ-значение» в памяти для приложений реального времени. Разработчики могут использовать его в качестве базы данных NoSQL, вторичного уровня данных или уровня кэша для ресурсоемких процессов.

Redis предлагает постоянное хранилище, которое может кэшировать состояния сеанса веб-сайта и другие данные. Приложения, использующие Redis в качестве уровня кэша, обычно выполняют один сложный запрос к базе данных или вызов API, а затем кэшируют результаты. Он может хранить и извлекать объекты быстро и эффективно. Таким образом, Redis — превосходный компаньон для WordPress, который использует более традиционный сервер реляционной базы данных в качестве основного хранилища контента.

Интерфейс командной строки Redis (CLI) можно использовать для связи с сервером Redis вашего сайта WordPress. Использование Redis CLI (вызываемого в командной строке как redis-cli), вы можете программно запрашивать и получать ответы от сервера Redis, отслеживать команды, выполняемые в экземпляре Redis, проверять задержку экземпляра и наблюдать за состоянием сервера в режиме реального времени.

В этом руководстве показано, как интегрировать Redis и ваш сайт WordPress, а также использовать Redis CLI для выполнения операций создания, чтения, обновления и удаления (CRUD) с вашего терминала.

Подключите Redis к WordPress с помощью DevKinsta

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

DevKinsta локально разворачивает Dockerized WordPress-сайт с последними версиями его зависимостей, включая веб-сервер Nginx, PHP и MySQL-совместимую базу данных MariaDB. Он также имеет поддержку CLI для WordPress.

DevKinsta доступен для Windows, Linux и macOS. Более подробную информацию об установке вы можете найти при загрузке DevKinsta.

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

DevKinsta предлагает три варианта локального создания сайтов WordPress: новый сайт с настройками по умолчанию, новый сайт с пользовательскими настройками и клонирование существующего сайта, размещенного на Kinsta, в вашу локальную среду разработки.

В этом руководстве используется первый вариант с настройками по умолчанию и последними версиями Nginx, PHP, MariaDB и WordPress.

Выполнив эти шаги, вы сможете просмотреть панель управления вашего нового сайта в DevKinsta:

Панель управления DevKinsta после создания нового сайта WordPress.

Обратите внимание на путь к сайту. Это каталог, содержащий файлы и папки локального сайта. Администратор WP Ссылка на панель управления появится в правом верхнем углу. Наконец, обратите внимание на хост сайта, который представляет собой URL-адрес, указывающий на ваш новый сайт разработки.

Вы можете открыть Docker Desktop, чтобы просмотреть список всех контейнеров, работающих как зависимости в вашем проекте DevKinsta. Для этого нажмите Контейнеры в верхней части левой боковой панели:

Снимок экрана: список контейнеров Docker Desktop, работающих в DevKinsta.
Список контейнеров DevKinsta в Docker Desktop.

Теперь, когда ваш сайт WordPress и зависимости контейнера запущены, вы готовы подключить базу данных Redis к своему сайту:

  1. Нажмите кнопку Администратор WP Кнопка в DevKinsta, чтобы перейти к панели администратора WordPress.
  2. Нажать на Плагины вкладка слева.
  3. Нажмите Добавить новоеи найдите «Кэш объектов Redis».
Снимок экрана: поиск кеша объектов Redis при добавлении плагинов в WordPress.
Ищем плагин Redis Object Cache в WordPress.

Нажмите Установите сейчас рядом с плагином. Затем подтвердите его активность, нажав кнопку Установленные плагины вкладка.

Снимок экрана: список установленных плагинов WordPress с выделенным кэшем объектов Redis.
Установлены плагины WordPress, включая Redis Object Cache.

При первой активации плагин Redis Object Cache сообщит, что он не может подключиться к базе данных Redis. Мы решаем эту проблему, создавая контейнер с экземпляром Redis в Docker.

Давайте откроем терминал и создадим сетевой контейнер под названием RedisNet в котором можно запустить образ Redis:

docker network create -d bridge redisnet

Теперь создайте и запустите образ Redis как отдельный контейнер внутри этого сетевого контейнера:

docker run -d -p 6379:6379 --name demo_redis --network redisnet redis

После запуска образа контейнера убедитесь в Docker Desktop, что образ Redis запущен и работает:

Снимок экрана: индикатор того, что образ demo_redis запущен в Docker Desktop.
Docker Desktop под управлением demo_redis изображение.

Помните, что ваш сайт WordPress автоматически запускается внутри контейнера Docker. Вы можете подтвердить имя и идентификатор сети контейнеров:

docker network ls
Снимок экрана: вывод команды списка сетей Docker.
Сетевые имена и идентификаторы в Docker Desktop.

Выше приведена усеченная версия идентификатора сети для devkinsta_network является d1fa155f7a4d. Мы будем использовать это позже.

Один из способов подключить кластер и сервер Redis к локальному сайту WordPress — напрямую подключить сети Redis и DevKinsta. Сначала проверьте идентификатор контейнера для Redis. Здесь, с помощью команды Docker для вывода списка контейнеров, мы используем -l (последний) переключатель, чтобы показать только последний созданный контейнер:

docker ps -l
Снимок экрана: выходные данные команды Docker для отображения информации о контейнерах.
Информация о контейнере, созданная Docker’s пс команда.

В этом примере усеченный идентификатор контейнера выглядит как c3ffc630e44c.

Подключите свой контейнер Redis к сети DevKinsta, используя идентификатор вашего контейнера вместо нашего в приведенной ниже команде.

docker network connect devkinsta_network c3ffc630e44c

Вы должны были успешно добавить образ контейнера Redis в список запущенных контейнеров внутри. devkinsta_network. Чтобы проверить сетевой IP-адрес контейнера Redis, выполните следующую команду, заменив наш devkinsta_network ID с тем, который вы нашли с помощью network ls команда в вашем проекте:

docker inspect d1fa155f7a4d
Снимок экрана: вывод команды проверки Docker.
Терминал, отображающий некоторые выходные данные докер проверить команда.

На изображении выше IP-адрес demo_redis контейнер 172.172.0.6. Прежде чем продолжить подключение, запишите IP-адрес в своем проекте.

Перейдите в корень сайта WordPress на своем локальном компьютере, который находится в пути к сайту, отображаемом в DevKinsta. Открой wp-config.php файл в текстовом редакторе и добавьте следующий код в раздел для пользовательских переменных конфигурации:

define('WP_REDIS_CLIENT', 'predis');
define('WP_REDIS_HOST', '172.172.0.6');
define('WP_REDIS_PORT', '6379');

IP-адрес, который вы используете для WP_REDIS_HOST это тот, который вы обнаружили для demo_redis когда вы выполнили docker inspect команда.

Этот код конфигурации добавляет клиент, хост и порт Redis, чтобы плагин мог получить доступ к серверу Redis внутри того же контейнера Docker и сети, что и DevKinsta.

Чтобы убедиться, что плагин подключен и работает:

  1. Перейдите на страницу плагинов WordPress на панели администратора.
  2. Нажмите кнопку Настройки ссылка на кэш объектов Redis.
  3. На странице настроек нажмите кнопку Включить кэш объектов кнопка.
Снимок экрана: включение кэша объектов Redis в WordPress.
Кэш объектов Redis доступен для записи и доступа, но его необходимо включить.

После включения кэша объектов Redis страница его настроек будет выглядеть примерно так:

Снимок экрана: страница настроек кэша объектов Redis с включенным плагином.
На странице настроек кэша объектов Redis показано, что Redis подключен и работает.

Запуск Redis CLI

Инструмент Redis CLI (redis-cli) поставляется в комплекте с сервером Redis. Вы можете установить сервер Redis в операционных системах Windows, macOS и Linux.

Однако мы уже запускаем Redis в Docker, поэтому мы можем запустить инструмент CLI в нашем demo_redis контейнер.

Выше, когда мы использовали docker ps команде мы узнали идентификатор контейнера, в котором запущен образ Redis. Наши начались c3ffc630e44c. Мы можем использовать этот усеченный идентификатор для таргетинга demo_redis и запустите в нем оболочку командной строки:

docker exec -it c3ffc630e44c /bin/sh

Теперь вы можете вызвать redis-cli инструмент:

Снимок экрана: Redis-cli вызывается в Docker.
Redis-Cli вызывается из оболочки в Docker.

Вы можете пропинговать сервер, чтобы проверить соединение:

ping
Снимок экрана: проверка связи с сервером Redis с помощью redis-cli.
Ответ сервера на пинг Redis-Cli.

Чтобы подключиться к серверу Redis, используя его IP-адрес и порт, и проверить это соединение, выполните следующую команду (используя IP-адрес вашего demo_redis контейнер):

redis-cli -h 172.172.0.6 -p 6379 ping
Снимок экрана: проверка связи с сервером Redis через IP-адрес.
Отправка пинг-запроса на сервер Redis через его IP-адрес и порт.

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

Затем убедитесь, что ваш сайт WordPress хранит данные в кеше Redis, используя redis-cli И его keys * команда для отображения всех ключей в базе данных:

Снимок экрана: список ключей на сервере Redis.
Получение всех ключей в базе данных Redis с помощью поиска по подстановочным знакам звездочки.

Вы можете видеть, что некоторые данные WordPress уже сохранены в кеше Redis.

Redis CLI CRUD-операции

Вы можете выполнять операции CRUD в базе данных Redis с помощью инструмента CLI.

Давайте получим значение ключа, который мы скопировали из нашего предыдущего интерфейса командной строки Redis. keys * запрос.

get :u.:~8r]mC->Re/gG!&mGU.[{+;]t7o<H~)c*pcU=Lx_Vs{9JkdxkL:X;M-@Y$Svwp:user_meta:1
Снимок экрана: результаты запроса к базе данных Redis.
Ответ Redis на запрос «get» с использованием Redis-Cli.

Давайте манипулировать содержимым базы данных Redis, вызывая redis-cli и используя set, get и del команды для создания пары ключ/значение, запроса нового ключа и последующего его удаления:

Снимок экрана: создание, запрос и удаление данных ключа/значения Redis.
Простые операции CRUD в базе данных Redis с использованием Redis-Cli.

Вышеприведенная попытка получить значение удаленного ключа возвращает результат. nil.

При использовании Redis CLI доступно множество более сложных операций.

Краткое содержание

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

В Docker экземпляр Redis предоставляет инструменты, необходимые для управления базой данных, включая redis-cli — упакованы в один контейнер.

Между тем, подход DevKinsta Dockerized позволяет легко разработать сайт WordPress на локальном компьютере, а затем развернуть его в рабочей среде несколькими щелчками мыши.

Если вы еще не управляете некоторыми из 108 500 сайтов WordPress, размещенных на Kinsta, откройте для себя расширенные функции, доступные во всех наших планах управляемого хостинга WordPress.