Redis — это (СУБД) класса NoSQL, позволяющее хранить данные в оперативной памяти, известно своей исключительной производительностью, что делает его популярным выбором для таких задач, как кэширование, аналитика в реальном времени, управление сеансами и брокерство сообщений. Redis — работает со структурами данных типа «ключ — значение». Redis поддерживает различные сложные структуры данных, включая строки, хэши, списки и множества, что позволяет ему обрабатывать различные рабочие нагрузки с минимальной задержкой. Кроме того, Redis предназначен для работы с постоянными данными, то есть он может сохранять данные на диске, что крайне важно для приложений, которым требуется надёжность данных. Благодаря таким функциям, как сценарии Lua, встроенная репликация и высокая доступность с Redis Sentinel, Redis представляет собой надёжное решение для современных приложений, требующих масштабируемого, надёжного и высокоскоростного управления данными.
В Fedora 40 или 39 Redis можно установить с помощью AppStream от Fedora, который предлагает стабильную версию, подходящую для большинства пользователей. Для тех, кому нужен доступ к новейшим функциям и улучшениям, в репозитории Remi RPM доступны версии Redis 6.0, 6.2, 7.0 и 7.2, что позволяет выбрать версию, которая лучше всего соответствует вашим требованиям к производительности и совместимости. В этом руководстве объясняется, как установить Redis с помощью обоих методов, чтобы обеспечить оптимальную настройку системы Fedora.
Способ 1: Установка Redis через Appstream по умолчанию
Обновление Fedora Перед установкой Redis
Чтобы установка Redis прошла гладко нужно обновить систему Fedora.
Этот шаг поможет избежать конфликтов.
Выполните следующую команду в вашем терминале, чтобы обновить вашу систему:
sudo dnf upgrade --refresh
Эта команда обновляет метаданные репозитория и обновляет все пакеты вашей системы до последних версий. Рекомендуется выполнять этот шаг перед установкой любого нового программного обеспечения для поддержания целостности и безопасности системы.
Установка Redis с помощью команды DNF
Репозиторий Fedora по умолчанию обычно содержит самую последнюю версию Redis. Благодаря этому процесс установки становится простым и надёжным.
Чтобы установить Redis в вашу систему Fedora, используйте приведенную ниже команду:
sudo dnf install redis
Эта команда загрузит и установит Redis и все необходимые зависимости из репозитория Fedora. Важно отметить, что версия, доступная в репозитории Fedora, не всегда является самой последней, выпущенной разработчиками Redis. Однако она обычно обновляется и является стабильной, что делает её подходящей для большинства приложений.
Способ 2: Установка Redis через Remi RPM
Импорт Remi RPM для Redis
Использование репозитория Remi RPM — надёжная альтернатива для установки последних или определённых версий Redis с долгосрочной поддержкой в Fedora Linux. Этот метод проще, чем Red Hat Enterprise Linux (RHEL) и его производные, поскольку не требует предварительной установки дополнительных пакетов для Enterprise Linux (EPEL).
Для обеспечения совместимости крайне важно выбрать правильную версию репозитория Remi, соответствующую вашей версии Fedora.
Используйте одну из следующих команд в зависимости от вашей версии Fedora:
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-40.rpm -y
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-39.rpm -y
sudo dnf install http://rpms.remirepo.net/fedora/remi-release-38.rpm -y
Эти команды добавляют репозиторий Remi в вашу систему, подготавливая её к установке нужной версии Redis.
Список модулей Redis из Remi RPM
С помощью репозитория Remi, интегрированного в вашу систему, вы можете изучить доступные версии Redis. Чтобы просмотреть список модулей Redis, предлагаемых в репозитории Remi, выполните следующую команду:
sudo dnf module list redis:remi*
Эта команда выводит список различных версий Redis, доступных для установки, чтобы вы могли выбрать наиболее подходящую.
Включение версии, специфичной для Redis
После выбора нужной версии Redis из списка следующим шагом будет включение этой конкретной версии. Используйте приведённую ниже команду, заменив {version} на выбранный номер версии:
sudo dnf module enable redis:remi-{version}
Например, чтобы включить Redis версии 7.2, нужно выполнить следующую команду:
sudo dnf module enable redis:remi-7.2 -y
Эта команда настраивает вашу систему на установку выбранной версии Redis из репозитория Remi.
Установка Redis с помощью команды DNF из Remi RPM
После включения нужного модуля Redis вы можете установить его. Чтобы установить указанную версию Redis или обновить существующую установку до последней версии, доступной в репозитории Remi, выполните следующие действия:
sudo dnf install redis
Выбранная вами версия Redis будет установлена в вашей системе Fedora с помощью предложений репозитория Remi RPM.
Включение службы Redis
Запуск и включение службы Redis
Чтобы Redis запускался автоматически при загрузке системы, запустите и включите службу Redis с помощью следующей команды:
sudo systemctl enable redis --now
Эта команда немедленно запускает Redis и настраивает его на запуск при загрузке.
Так Redis всегда будет доступен во время работы вашей системы.
Проверка состояния службы Redis
После запуска Redis необходимо убедиться, что служба работает без ошибок. Проверьте состояние службы Redis с помощью:
systemctl status redis
Эта проверка позволяет получить представление о текущем состоянии службы, в том числе о том, активна ли она и работает ли без сбоев.
Подтверждение порта прослушивания Redis
По умолчанию Redis обычно прослушивает localhost через порт 6379. Чтобы проверить это, выполните следующую команду:
ps -ef | grep redis
Ожидаемый результат:
redis 2969 1 0 11:17 ? 00:00:00 /usr/bin/redis-server 127.0.0.1:6379 joshua 3175 3095 0 11:19 pts/0 00:00:00 grep --color=auto redis
Этот вывод подтверждает, что Redis запущен и прослушивает правильный порт.
Выполнение теста Ping
Чтобы проверить подключение к сервису Redis, запустите тест ping. Сначала подключитесь к командной строке Redis с помощью:
redis-cli
После подключения в терминале отобразится (127.0.0.1:6379). Затем проверьте работоспособность службы Redis:
ping
Ожидаемый результат:
PONG
Этот простой тест показывает, что сервис Redis работает и отзывается.
Получение информации о сервере Redis
Для получения подробной информации о сервере Redis используйте команду INFO.
Для этого используйте следующую команду в терминале:
INFO SERVER
Эта команда предоставляет полный обзор текущей конфигурации и состояния сервера Redis.
Выход из командной строки Redis
После завершения проверки или настройки выйдите из Redis с помощью команды:
exit
Примеры настройки Redis
Настройка Redis для кэширования
Redis часто используется для кэширования и повышения производительности веб-приложений. Для начала откройте файл конфигурации Redis следующим образом:
sudo nano /etc/redis/redis.conf
Файл, расположенный по адресу /etc/redis/redis.conf, содержит настройки, необходимые для изменения поведения Redis.
Настройка Максимального объема памяти
Добавьте эти строки в конец файла, чтобы выделить память для Redis. Отредактируйте значение памяти в соответствии с возможностями вашего сервера и требованиями вашего приложения.
maxmemory 500mb
maxmemory-policy allkeys-lru
В этом примере Redis настроен на использование 500 МБ памяти. Эта настройка подходит для сервера с большим объёмом оперативной памяти. Директива maxmemory-policy allkeys-lru указывает, что при достижении максимального объёма памяти Redis будет удалять ключи по алгоритму Least Recently Used (LRU) (наименее часто используемые), оптимизируя использование памяти.
Настройка доступа к сети
Redis позволяет настраивать доступ к сети для различных сценариев.
Прослушивание всех сетевых интерфейсов
Чтобы Redis прослушивал все сетевые интерфейсы, закомментируйте строку привязки (строка 69) в файле конфигурации:
# bind 127.0.0.1 ::1
В качестве альтернативы, можно сделать привязку ко всем интерфейсам:
bind 0.0.0.0/0
Обеспечьте надежную внутреннюю сетевую безопасность при использовании этой конфигурации.
Привязка к Определенному IP-адресу
Для более безопасной настройки привяжите Redis к определённому статическому IP-адресу:
bind 192.150.5.2
Привязка к сетевой подсети
Чтобы привязать Redis к подсети:
bind 192.150.5.0/24
Настоятельно рекомендуется защищать Redis паролем, особенно при подключении к более широким сетевым интерфейсам или подсетям.
Настройка пароля для обеспечения безопасности
Защита Redis паролем повышает уровень безопасности.
Перейдите к строке 507 и раскомментируйте строку «requiredpass», установив надёжный пароль:
requiredpass APASSWORD
Выберите надёжный пароль, состоящий из цифр, букв, специальных символов и заглавных букв, чтобы предотвратить атаки методом перебора.
Доступ к Redis с помощью пароля
При доступе к Redis с помощью Redis-CLI используйте команду:
auth THEPASSWORDSET
Замените “THEPASSWORDSET” на установленный вами пароль.
Пользователи, пытающиеся получить доступ без правильного пароля, столкнутся с ошибкой:
(error) NOAUTH Authentication required.
При успешном входе в систему будет сообщение:
OK
Настройка моментальных снимков (RDB)
Для регулярного создания снимков, которые сохраняют набор данных через определённые промежутки времени, настройте следующие параметры:
save 900 1
save 300 10
save 60 10000
В этой конфигурации Redis сохранит набор данных:
- Каждые 900 секунд, если менялась хотя бы 1 ключ.
- Каждые 300 секунд, если менялось не менее 10 ключ.
- Каждые 60 секунд, если было изменено не менее 10000 ключей.
Этот метод эффективен для обеспечения баланса между безопасностью данных и производительностью.
Включение AOF
Чтобы повысить надёжность хранения данных с помощью AOF, который регистрирует каждую операцию записи, добавьте:
appendonly yes
Этот параметр включает AOF, гарантируя, что каждое изменение ваших данных будет немедленно сохранено. Этот метод обеспечивает более высокий уровень безопасности данных, поскольку позволяет восстановить данные после последней операции записи.
Настройка уровней журнала
Настройка уровня журнала помогает в мониторинге и устранении неполадок:
loglevel notice
Варианты включают в себя:
- debug: Журнал для разработки.
- verbose: Довольно подробный.
- notice: Умеренно детализированный.
- warning: Регистрирует только предупреждения и ошибки.
Настройка Политики удаления
Чтобы более эффективно управлять памятью, установите политику удаления:
maxmemory-policy volatile-lru
Варианты включают в себя:
- volatile-lru: удаляет наименее часто используемые ключи из всех ключей с установленным сроком действия.
- allkeys-lru: удаляет ключ, который использовался последним, независимо от срока действия.
- volatile-random: случайным образом удаляет ключи с установленным сроком действия.
- allkeys-random: случайным образом удаляет ключи независимо от срока действия.
- volatile-ttl: удаляет ключи с наименьшим оставшимся сроком службы.
- noeviction: возвращает ошибку при достижении предела памяти.
Защита Redis с помощью TLS
Чтобы включить TLS для зашифрованных соединений:
tls-port 6379
tls-cert-file /path/to/cert.pem
tls-key-file /path/to/privkey.pem
Замените /path/to/cert.pem и /path/to/privkey.pem на реальные пути к вашему сертификату TLS и закрытому ключу. Такая настройка повышает безопасность, особенно если Redis доступен по сети.
Корректировка номеров баз данных
Вы можете указать количество баз данных, используемых Redis:
databases 16
Этот параметр настраивает Redis на использование (в данном случае) 16 баз данных, пронумерованных от 0 до 15.
Сохранение изменений и перезапуск Redis
После настройки Redis сохраните изменения (CTRL+O) и закройте редактор (CTRL+X). Чтобы применить эти изменения, перезапустите службу Redis при помощи команды:
sudo systemctl restart redis
После этого, все внесённые вами изменения конфигурации вступят в силу, а ваш экземпляр Redis будет защищён и оптимизирован.
Настройка брандмауэра для Redis
Настройка выделенной зоны брандмауэра для Redis
Для повышения уровня безопасности важно установить специальные правила брандмауэра для Redis. Изначально в брандмауэре Fedora для Redis не было установлено никаких правил по умолчанию. Настройка этих правил необходима для предотвращения несанкционированного доступа и потенциальных атак.
Создайте новую зону, для Redis, в firewalld, используя команду:
sudo firewall-cmd --permanent --new-zone=redis
Эта команда добавляет в firewalld зону «redis», что станет основой для более подробных правил.
Разрешение доступа к Redis по определенным IP-адресам
Далее определите, какие IP-адреса имеют доступ к Redis. Этот шаг необходим для контроля доступа и для того, чтобы только доверенные источники могли взаимодействовать с вашим сервером Redis.
Чтобы добавить разрешенный IP-адрес в зону Redis, используйте:
sudo firewall-cmd --permanent --zone=redis --add-source=1.2.3.4
Замените 1.2.3.4 на фактический IP-адрес, который вы хотите разрешить. Эта настройка гарантирует, что только указанные IP-адреса смогут получить доступ к вашей установке Redis.
Открытие порта Redis в брандмауэре
По умолчанию Redis работает через TCP-порт 6379. Чтобы включить сетевое взаимодействие с Redis, вам нужно открыть этот порт в брандмауэре.
Используйте следующую команду, чтобы открыть порт Redis по умолчанию:
sudo firewall-cmd --permanent --zone=redis --add-port=6379/tcp
Если вы ранее изменили порт Redis по умолчанию в своей конфигурации, не забудьте соответствующим образом изменить порт в этой команде.
Перезагрузка брандмауэра для применения новых правил
После настройки правил перезагрузите firewalld, чтобы изменения вступили в силу:
sudo firewall-cmd --reload
Успешное выполнение этой команды должно вернуть:
success
Проверка Правил брандмауэра с помощью Redis
Чтобы убедиться, что конфигурация брандмауэра работает должным образом, проверьте подключение к сервису Redis, особенно с учётом новых ограничений IP-адресов.
Протестируйте соединение с помощью:
redis-cli -h <ip address> ping
Замените <ip address> на разрешенный IP-адрес.
В ответ появится:
pong
Этот ответ указывает на то, что ваш брандмауэр настроен правильно и разрешает доступ к Redis только из указанных источников.
Заключение
В заключение отметим, что установка Redis на Fedora через репозиторий AppStream — простой и стабильный вариант для большинства пользователей. Однако, если вам нужен доступ к новейшим функциям и оптимизациям, лучше использовать репозиторий Remi RPM. Оба способа обеспечивают надёжную интеграцию Redis в вашу систему, гарантируя, что ваша установка Fedora сможет эффективно обрабатывать высокопроизводительные операции с данными. Не забывайте обновлять Redis, чтобы поддерживать его эффективность и надёжность как важнейшего компонента вашей системы.