Установка Redis 7 в Centos 8 Stream

redis Applications

Redis - это хранилище структур данных в памяти с открытым исходным кодом. Вы можете использовать его как альтернативу Memcached для хранения простых пар ключ-значение, как базу данных NoSQL или даже как брокер сообщений по схеме Pub-Sub. Это руководство покажет вам, как установить, настроить, отладить и защитить Redis на CentOS 8 Stream.

Установка Redis

RPM-репо Remi's - это давний и проверенный сообществом репозиторий для CentOS. Его пакет Redis обычно новее, чем пакет Redis в CentOS.

Включите репозиторий:

Перечислите все доступные пакеты Redis в репозитории Remi.

Результат должен выглядеть следующим образом:

Значения во втором столбце выше соответствуют основным версиям Redis.

Предварительно может понадобиться сброс модуля редис

Предполагая, что последняя основная версия - 7.0, установите эту версию:

Включите службу Redis для запуска во время загрузки.

Запустите Redis.

Настройка Redis

Откройте файл конфигурации Redis :

Установите желаемый объем памяти для вашего приложения.

По умолчанию, когда maxmemory будет достигнуто, Redis перестанет записывать новые данные. Если вы хотите, чтобы Redis записывал новые данные, автоматически удаляя старые, вы должны указать Redis, как их удалять. Политика выселения allkeys-lru является хорошим выбором для большинства пользователей. Добавьте следующую строку:

Установите политику сохранения на диск.

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

Это означает, что сохранение произойдет

  • через 900 сек (15 мин), если изменился хотя бы 1 ключ
  • через 300 сек (5 мин), если изменилось не менее 10 ключей
  • через 60 секунд, если изменилось хотя бы 10000 ключей

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

Если вы решите сохранить эту функцию, вам следует обновить сервер до более производительного или добавить соответствующий файл подкачки в Linux, чтобы память Redis была вдвое больше, чем maxmemory, объявленная выше. В противном случае, когда maxmemory будет достигнута, процесс сохранения может привести к тому, что на вашем сервере закончится память.

Сохраните и закройте конфигурационный файл, затем перезапустите Redis, чтобы применить изменения.

Тонкая настройка системы

Проверьте файл журнала Redis:

Вы увидите примерно такую информацию:

  1. WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
  2. WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
  3. WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.

Чтобы устранить первое предупреждение, введите следующую команду.

Чтобы устранить второе предупреждение, введите следующую команду.

Перезагрузите значения sysctl.

Чтобы исправить последнее предупреждение, необходимо отключить Transparent Huge Pages (THP) во время загрузки перед запуском службы Redis.

Создайте новый файл сценария:

Вставьте в файл следующий текст:

Сохраните и закройте файл, затем сделайте его запускаемым и принадлежащим учетной записи root:

Далее создайте файл конфигурации для службы systemd, которая будет вызывать скрипт во время загрузки:

Вставьте в файл следующий текст:

Сохраните и закройте файл, затем включите службу:

Проверка установки

Перезапустите сервер:

После перезапуска сервера проверьте файл журнала Redis, чтобы убедиться в отсутствии предупреждений:

Используйте программу redis-cli для подключения к Redis через стандартный loopback IP 127.0.0.1 и порт 6379.

Если подключение прошло успешно, вы увидите командную строку Redis:

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

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

redis test

(Необязательно) Настройка Redis для доступа в локальной сети

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

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

Обновите службу firewalld, чтобы разрешить входящие соединения из частной сети:

Создайте службу systemd для отсрочки запуска Redis до тех пор, пока частный интерфейс не будет запущен и IP-адрес не будет назначен.

Вставьте следующий текст в файл, затем сохраните и закройте его:

Отредактируйте файл конфигурации Redis.

Добавьте частный IP-адрес, к которому должен привязываться Redis. Например, если Redis должен привязаться к внутреннему loopback (127.0.0.1) и частному IP-адресу (192.168.0.2):

Сохраните и закройте конфигурационный файл.

Перезапустите Redis, чтобы применить изменения.

Avatar for Gnostis
Gnostis
Добавить комментарий