Redis (REmote DIctionary Server) - это нереляционная высокопроизводительная СУБД, сетевое хранилище данных типа «ключ - значение».
Отличие Redis от других хранилищ состоит в том, что значения ключей не ограничиваются строками; есть поддержка таких абстрактных типов данных, как строки, списки, множества, хэш-таблицы и другие.
Также, рассказывая о Redis, часто выделяют ее высокую производительность: причина заключается в том, что все данные хранятся в оперативной памяти. Поэтому есть смысл использовать Redis для работы с быстроменяющимися и активно запрашиваемыми данными.
Redis может стать более чем полноценной заменой Memcached, дав возможность использовать репликацию, более длинные ключи и значения и многое другое.
Изначально установку Redis сервера рекомендуется проводить из репозиториев используемой операционной системы. Предполагается, что последующие команды будут выполняться от имени пользователя root или при использование sudo (если Вы авторизованы не от пользователя root, рекомендуем выполнить sudo su).
Установка на DEB дистрибутивы (Ubuntu/Debian)
Сначала выполним обновление пакетов:
# apt update # apt upgrade
После чего непосредственно выполнив установку Redis сервера:
# apt install redis-server
После завершения установки проверим работу установленного сервиса:
$ redis-cli ping
В случае успешной установки в ответ придет текст - PONG, если сервис не установился или не запустился, на экран будет выведена ошибка, о невозможности подключится к сервису или отсутствии команды redis-cli.
Если Redis сервер установлен и запустился, то он будет ожидать подключение на локальном интерфейсе 127.0.0.1 (localhost), порт стандартный - 6379.
Установка на RHEL (CentOS/BitrixOS)
Процесс установки почти не отличается от установки на Debian дистрибутивы. Сначала обновляем пакеты:
# yum update
Выполняем установку Redis сервера:
# yum install redis -y
Запускаем сервис и добавляем его в автозагрузку:
# systemctl start redis # systemctl enable redis
После чего проверим его работу:
$ redis-cli ping
В независимости от используемого дистрибутива Вы всегда можете установить последнюю версию Redis сервера, собрав её из исходных кодов по инструкции с официального сайта проекта Redis:
https://redis.io/topics/quickstart
Настройка Redis
Для Ubuntu и Debian основной конфигурационный файл Redis сервера Вы найдете по пути /etc/redis/redis.conf, в CentOS (а также BitrixOS) конфигурация располагается в файле /etc/redis.conf.
Наиболее интересным будет параметр maxmemory, он задает ограничение использования оперативной памяти для хранения данных в Redis. По умолчанию Redis может использовать всю доступную память сервера, поэтому если сервер не обладает достаточным количеством постоянно свободной памяти (Вы можете просмотреть информацию о используемой памяти командой free -m), то стоит задать этот параметр. Самым простым решением для выбора максимального объема памяти будет разделить среднее значение нескольких показаний свободной памяти (free -m) пополам.
Например, в течение часа показатели free -m были следующими:
total used free shared buff/cache available Mem: 7170 4616 204 420 2348 2047 total used free shared buff/cache available Mem: 7170 4628 188 422 2352 2034 total used free shared buff/cache available Mem: 7170 4645 169 422 2354 2016
Средним показателем для свободной памяти (столбец free) будет 187 ((204+188+169)/3=187), поэтому ограничим maxmemory в 180 Мб. Для этого откроем файл redis.conf, найдем строку “# maxmemory <bytes>”: и заменим её указав нужное значение:
maxmemory 180mb
Также в данном файле стоит обратить внимание на следующие параметры:
- maxclients - количество разрешенных клиентов;
- tcp-backlog - количество соединений которые могут находится в очереди, если все возможные соединения заняты;
- save - условия, при которых данные будут записываться на диск. Данные Redis хранятся в оперативной памяти и в зависимости от значений save сохраняются на диск, что замедляет производительность, но повышает надежность хранения данных. Условию save передается два значение: количество секунд и количество изменений, если за указанное количество происходит указанное количество изменений, то данные будут сохранены на диск. По умолчанию параметры выглядят так:
save 900 1 - сохранить, если за 900 секунд будет хотя бы одно изменение;
save 300 10 - сохранить, если за 300 секунд будет хотя бы 10 изменений;
save 60 10000 - сохранить, если за 60 секунд будет 10000 и более изменений.
Вы можете редактировать текущие правила или удалять их. Вы можете просто закомментировать их (поставить в начале строки #), в этом случае будет достигнута максимальная производительность, т. к. данные не будут записываться на диск, но в случае перезагрузки сервера или Redis все данные будут утеряны.
После внесения каких-либо изменений в конфигурационный файл Redis необходимо перезапустить.
Для Debian/Ubuntu:
service redis-server restart
Для CentOS/BitrixOS:
systemctl restart redis
Заключение
Теперь Вы знаете, как правильно устанавливать и настраивать Redis. Больше информации о конфигурации Redis сервера Вы можете получить из его документации:
https://redis.io/topics/config
Комментарии