Хостинг SpaceWeb
Серверы Дизайн Сайты Безопасность Домены PHP Кейсы клиентов

Знакомство с Redis: что это такое и для каких целей можно использовать

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

Что такое Redis

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

СУБД Redis обладает высокой производительностью и обеспечивает время отклика на уровне доли миллисекунд. Поэтому система часто используется в приложениях, требующих высокоскоростной обработки данных, таких как аналитика в реальном времени, игры, службы такси, социальные сети и электронная коммерция.

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

  1. Редис позволяет хранить данные на диске, что снижает риск потери данных в случае сбоев.
  2. Redis поддерживает следующие типы данных: списки, строки, обычные множества, хэши, сортируемые множества.

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

Redis — это однопоточный сервер. Благодаря этой особенности обеспечивается атомарность операций, то есть Redis поддерживает транзакции и пакетную обработку команд. Минусом такой особенности можно бы было назвать медлительность запросов, но Redis работает очень быстро, обрабатывая в среднем около 28 000 запросов в секунду. Такая скорость делает его отличным вариантом для хранения различных счетчиков и временных данных, включая кэш сайта и PHP-сессии.

Преимущества Redis

  1. Производительность. Redis хранит данные исключительно в кэше на сервере, поэтому их не нужно переносить на диск. Это приводит к повышению пропускной способности и снижению задержек ядра — система выполняет до миллиона операций в секунду.
  2. Масштабируемость. С помощью Redis можно создать кластерную архитектуру. В этом случае проекты будут работать стабильно и надежно. Вы можете выбрать горизонтальное или вертикальное масштабирование, а также изменить размер кластера в соответствии с вашими требованиями.
  3. Асинхронная репликация. В Redis поддерживается асинхронная репликация данных, которая позволяет копировать информацию на несколько подчиненных серверов. Эта функция повышает скорость получения данных, поскольку запросы распределяются между серверами. Кроме того, это помогает быстро восстановиться в случае выхода из строя основного сервера. Чтобы обеспечить постоянное хранение данных, Redis хранит моментальные снимки состояния на определенный момент времени.
  4. Поддержка множества структур данных. Обычно хранилища поддерживают ограниченный набор структур данных. Redis отличается от них тем, что поддерживает широкий спектр структур данных, таких как строки, списки, множества, сортируемые множества, битовые массивы, структуры HyperLogLog, потоки, пространственные данные, JSON.
  5. Простота и удобство. При помощи Redis вы можете писать сложный код с меньшим количеством строк. Программа позволяет хранить, организовывать и получать доступ к данным с помощью всего нескольких простых строк кода. Например, если вам нужно переместить данные в хранилище, используйте хэш данных. Redis совместим с многими языками программирования, такими как Java, PHP, C++, JavaScript, Node.js, Python, Ruby, Go и другими.

Зачем нужен Redis

Рассмотрим, для чего применяется Redis:

Как увеличить производительность сайта с помощью Redis

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

  1. Авторизуйтесь в панели управления хостингом.
  2. Перейдите в раздел «Хостинг» > «Базы данных» и нажмите Создать базу данных:
  3. Выберите тип базы данных Redis:
  4. Выберите сайт, для которого хотите подключить хранение PHP-сессий:
  5. Нажмите Создать:
  6. Перейдите в раздел «Хостинг» > «Сайты» и нажмите на сайт, для которого подключаете хранение сессий:
    Важно! На текущий момент хранение PHP-сессий в Redis доступно только для PHP 7.1 и выше.
  7. Нажмите Подключить рядом с пунктом «Хранение сессий сайта в Redis»:
  8. Во всплывающем окне нажмите Подключить:

Готово, вы подключили хранение сессий сайта в Redis.

Как подключить Redis к Wordpress

Чтобы подключить Redis к Wordpress:

  1. Авторизуйтесь в админке сайта Wordpress.
  2. Перейдите в раздел «Плагины» и нажмите кнопку Добавить новый:
  3. В поисковой строке введите название плагина — Redis Object Cache. Рядом с нужным плагином нажмите Установить:
  4. Рядом с установленным плагином нажмите кнопку Активировать:
  5. Откройте панель управления хостингом.
  6. Перейдите в «Файловый менеджер». В корневой папке сайта найдите файл wp-config.php и откройте его:
  7. В конфигурационный файл добавьте строки:
    define( 'WP_REDIS_HOST', 'IP_address' );
    define( 'WP_REDIS_PORT', port_number );
    define( 'WP_REDIS_SCHEME', 'tcp' );


    где:
    • IP_address — IP-адрес,
    • port_number — номер порта.
    Посмотреть IP-адрес и номер порта можно в разделе «Хостинг» > «Базы данных» > «NoSQL базы данных»:
  8. Нажмите Сохранить и закрыть.
  9. Кэширование включится автоматически. Если этого не произошло, в админке Wordpress в разделе «Настройки» > «Redis» нажмите Включить объектный кэш:

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

Если вам нужны более серьезные настройки кэширования и полный доступ к возможностям Redis, установите плагин Object Cache Pro. Он значительно повышает скорость работы сайта, предлагает широкий функционал и собирает статистические данные. Установка этого плагина аналогична установке Redis Object Cache. Перед установкой Object Cache Pro нужно деактивировать бесплатную версию, если она активирована. Конфигурация для файла wp-config.php выглядит так:

define('WP_REDIS_CONFIG', [
'token' => '',
'host' => 'IP_address',
'port' => port_number,
'maxttl' => 3600 * 24 * 7, // 7 days
'timeout' => 1.0,
'read_timeout' => 1.0,
'split_alloptions' => true,
'debug' => false,
]);
где:

С этим плагином вы сможете настроить всё под собственный проект и получить подробную информацию о том, как работает кэширование.

Также вы можете воспользоваться плагином Powered Cache. Для его подключения в конфигурационный файл wp-config.php нужно внести строку:

$redis_server = array( 'host' => 'IP_address', 'port' => port_number, 'sheme' => 'tcp' ); где:

После подключения Powered Cache рекомендуем установить плагин Query Monitor.

Подведем итоги

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

Перейти на оригинал