База знаний

Инструкции и ответы на вопросы о хостинге, работе сайтов и приложений

Сервис Redis

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

Все популярные языки программирования имеют расширения для работы с Redis. Например, для PHP существует модуль PhpRedis (он установлен на нашей платформе хостинга), также доступны реализации для Python, Node.js и других языковых сред.

Модуль PhpRedis недоступен для PHP версий 5.2 и 5.3.

Для включения Redis перейдите в раздел «Баланс» → «Дополнительные услуги» и выберите объем памяти. В скрипте, осуществляющем подключение к Redis, укажите путь до сокета:

/home/login/tmp/redis.sock

Вместо «login» везде необходимо указывать ваш логин аккаунта хостинга.

Утилита redis-cli позволяет сохранять, считывать, удалять данные через интерфейс командной оболочки (подключившись к серверу по SSH). Например, следующая команда подключается к серверу Redis и показывает в реальном времени все операции записи и чтения информации:

~ $ redis-cli -s /home/login/tmp/redis.sock monitor

Таким образом можно проверить, используется ли хранилище вашими сайтами или веб-приложениями.

Также с помощью redis-cli можно проверить объем используемой памяти с помощью команды:

~ $ redis-cli -s /home/login/tmp/redis.sock info memory

В третьей строке вывода будет указано количество потребляемой памяти:

~ used_memory_human: 493.83K

В примере указано, что в Redis использовано 493.83 Кбайт памяти.

Вы можете настроить хранение PHP-сессий в Redis. Для этого следует добавить в конфигурационный файл .htaccess следующие директивы:

php_value session.save_handler "redis"
php_value session.save_path "unix:/home/login/tmp/redis.sock"

Ознакомимся с процессом настройки кеширования Redis на сайтах, использующих распространенные CMS.



WordPress

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

Настройка плагина зависит от сайта: не существует алгоритма, который подошел бы каждому проекту. В общем случае рекомендуем включить кеширование страниц (Page cache) и запросов к базе данных (Database cache).

После установки плагина в боковом меню появится пункт «Performance». Перейдите в раздел «General Settings» и найдите блок «Page cache». Включите кеширование (Enable) и в выпадающем списке выберите метод — Redis. Нажмите «Save all settings».

Выполните те же действия в блоке «Database cache».

В боковом меню перейдите в раздел «Page cache». Если на сайте доступна регистрация пользователей, отключите опцию «Don't cache pages for logged in users». Нажмите «Save all settings».

В блоке «Cache Preload» установите интервал очистки кеша — 86400 секунд (сутки). Сохраните изменения.

Перейдите к блоку «Advanced». В строке «Redis hostname» укажите путь до сокета и нажмите «Test». Сокет указан корректно, если в результате получено значение «Test passed».

В строке «Maximum lifetime of cache objects» установите время — 21600 секунд (6 часов). Опуститесь в нижнюю часть страницы и нажмите «Save all settings».

Перейдите в раздел «Database cache» и в строке «Redis hostname» укажите путь до сокета redis. Сохраните изменения.

Плагин настроен.

Joomla!

CMS Joomla по умолчанию имеет функцию хранения кеша в Redis. Чтобы включить кеширование, авторизуйтесь в административной части сайта и перейдите в раздел «Система» → «Общие настройки», вкладка «Система».


В блоке «Настройка кэша» укажите параметры, как на скриншоте. В поле «Хост сервера Redis» введите путь до сокета:

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

Была ли эта инструкция полезной?