Установка Redis на Rocky Linux

Redis — популярное open-source хранилище ключ-значение в памяти. Поддерживает структуры данных: строки, хэши, списки, множества и другие. Redis часто используют как базу данных, кеш и брокер сообщений. Он оптимизирован для высокой производительности и гибкости. Redis предназначён для запуска в доверенной сети, поэтому важно правильно настроить безопасность при публичном доступе.
В этом материале вы найдёте пошаговые инструкции по установке Redis на Rocky Linux двумя способами: быстро из AppStream (удобно для небольших развертываний) и через сборку из исходников (даёт доступ к последним возможностям и поддержке TLS). Также описаны настройка systemd, жёсткие рекомендации по безопасности, методики проверки и набор практических чеклистов для администратора.
Кому пригодится это руководство
- Системным администраторам и девопс-инженерам, настраивающим Redis в производственной среде.
- Разработчикам, которым нужен локальный экземпляр Redis на Rocky Linux.
- Инженерам по безопасности, контролирующим доступ и опасные команды Redis.
Основные термины
- Redis: сервер ключ-значение в памяти.
- AppStream: репозиторий пакетов для Rocky Linux.
- systemd: менеджер системных служб в современных дистрибутивах Linux.
- TLS: шифрование транспортного уровня для защищённого соединения.
Требования перед началом
- Сервер с Rocky Linux с актуальными пакетами и репозиториями. Обновите систему: sudo dnf update -y
- Пользователь с правами root или sudo.
- Свободное место и сетевой доступ для загрузки пакетов и исходников.
Important: Перед установкой на продакшн убедитесь, что у вас есть резервная стратегия для данных и плана отката.
Установка Redis из репозитория AppStream
Установка из AppStream — самый простой путь. Он подходит для тестовых сред и быстрых развёртываний. На момент написания AppStream в Rocky Linux содержит версию 5.x. Если вам нужна версия 6.x или выше — используйте сборку из исходников или сторонние репозитории.
- Установите пакет Redis:
sudo dnf install redisПодтвердите установку клавишей Y.

- Включите автозапуск сервиса при старте системы:
sudo systemctl enable redis- Запустите сервис и проверьте статус:
sudo systemctl start redis
sudo systemctl status redisЕсли сервис активен, вы увидите статус active (running).

Notes: При установке из репозитория конфигурационные пути и имена служб могут отличаться от инструкции для сборки из исходников. Проверяйте действительный путь конфигурации redis.conf.
Сборка Redis из исходников (версия 6.2 в примере)
Сборка из исходников требуется, если вам нужна более новая версия, TLS-поддержка или особая кастомизация. В примере мы устанавливаем стабильную серию 6.2.
- Подготовьте зависимости и репозиторий EPEL:
sudo dnf install epel-release -y
Установите группы и библиотеки для компиляции:
sudo dnf group install "Development Tools" -y
sudo dnf install jemalloc lua hiredis linenoise -y
sudo dnf install openssl-devel systemd-devel -y- Создайте системного пользователя и каталог данных:
sudo adduser --system --user-group --no-create-home --shell /sbin/nologin redis
sudo mkdir -p /var/lib/redis
sudo chown -R redis:redis /var/lib/redis- Загрузите исходники и распакуйте:
cd /usr/src/
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar -xzvf redis-6.2.5.tar.gz
cd redis-*/
- Соберите Redis с поддержкой TLS и systemd и запустите тесты:
sudo make BUILD_TLS=yes USE_SYSTEMD=yes
sudo make testВы увидите сообщение о прохождении тестов, если всё прошло успешно:
\o/ All tests passed without errors!
Cleanup: may take some time... OK
make[1]: Leaving directory '/usr/src/redis-6.2.5/src'- Установите собранные бинарники:
sudo make PREFIX=/usr installКоманды redis-server и redis-cli окажутся в /usr/bin.

Проверьте версии:
redis-server --version
redis-cli --versionЕсли установка прошла успешно — команды вернут версию 6.2.x.
Общая настройка Redis
Следующие шаги одинаковы и применимы как для установки из AppStream, так и для сборки из исходников.
- Создайте каталог конфигурации, если он ещё не создан (только для сборки из исходников):
mkdir -p /etc/redis
cp /usr/src/redis-*/redis.conf /etc/redis/redis.conf- Отредактируйте конфигурационный файл:
sudo nano /etc/redis/redis.conf
Основные параметры для изменения:
- bind — укажите локальный или приватный IP вашего сервера. По умолчанию bind 127.0.0.1. Если Redis должен быть доступен по сети, укажите конкретный IP или сетевой интерфейс.
bind 127.0.0.1- daemonize — запустить как демон. Для systemd можно оставить no, но при ручном запуске удобнее yes.
daemonize yes- supervised — укажите systemd для интеграции с systemd.
supervised systemd- dir — рабочий каталог и место хранения RDB/AOF файлов. Укажите /var/lib/redis.
dir /var/lib/redis- requirepass — включите простую аутентификацию паролем. Используйте длинный случайный пароль. Для продакшн-окружения лучше применять ACL и TLS.
requirepass AJds9dshsd8wqejdw82389r3ej3983jkСохраните изменения: Ctrl+X, Y, Enter.
Important: Хранить пароль в открытом виде в redis.conf удобно, но менее безопасно. Рассмотрите защиту файла конфигурации через права доступа и систему управления секретами (Vault, AWS KMS и т. п.).
Настройка systemd-сервиса для ручной установки
Если вы устанавливали Redis из исходников, потребуется системный юнит для systemd.
- Скопируйте пример юнита в /etc/systemd/system:
cd /usr/src/redis-*/utils/
cp systemd-redis_server.service /etc/systemd/system/redis-server.service- Отредактируйте юнит:
sudo nano /etc/systemd/system/redis-server.serviceПример ключевых опций для проверки:
[Unit]
...
AssertPathExists=/var/lib/redis
[Service]
...
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/bin/redis-cli shutdown
Restart=alway
...
User=redis
Group=redis
WorkingDirectory=/var/lib/redisИсправьте опечатку Restart=alway на Restart=always при редактировании.
- Перезагрузите конфигурацию systemd и включите сервис:
sudo systemctl daemon-reload
sudo systemctl enable redis-server
sudo systemctl start redis-server
sudo systemctl status redis-server
Переименование или отключение опасных команд
Redis позволяет переименовать команды или отключить их полностью через redis.conf. Это простой, но эффективный механизм защиты от случайных или вредоносных операций.
- Откройте конфигурацию:
sudo nano /etc/redis/redis.conf- Чтобы полностью отключить команду, назначьте ей пустую строку:
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""- Чтобы переименовать команду, укажите новое имя:
rename-command SHUTDOWN SHUT_ME_DOWN
rename-command CONFIG CONFIG_ME_NOWПримечание: После изменения конфига перезапустите сервис:
sudo systemctl restart redis-serverВажно: Переименование команд повышает безопасность, но усложняет эксплуатацию и автоматизацию. Документируйте все изменения и при необходимости обновляйте скрипты и мониторинг.
Проверка установки и аутентификации
- Подключитесь к серверу Redis:
redis-cliИли укажите хост/порт:
redis-cli -h 127.0.0.1 -p 6379- Аутентифицируйтесь, если включена опция requirepass:
auth AJds9dshsd8wqejdw82389r3ej3983jkОтвет при успешной аутентификации: OK
- Проверка связи:
pingПри успешном соединении сервер вернёт PONG.

- Проверка переименованных и отключённых команд. Если вы переименовали CONFIG в CONFIG_ME_NOW, обычный CONFIG вызовет ошибку:
CONFIG get bindОжидаемая ошибка: ERR unknown command ‘CONFIG’
Выполнение переименованной команды:
CONFIG_ME_NOW get bind
CONFIG_ME_NOW get supervisedЕсли вы успешно переименовали команды и у вас есть права, вы увидите корректный вывод.

Тесты приёмки и контрольные проверки
Критерии приёмки:
- Redis отвечает на PING и возвращает PONG.
- redis-server и redis-cli доступны в /usr/bin и возвращают ожидаемую версию.
- Сервис systemd активен и перезапускается без ошибок.
- Доступ вне локального интерфейса ограничен согласно bind и правилам фаервола.
- Пароль аутентификации работает, и переименованные/отключённые команды ведут себя согласно конфигурации.
Минимальные тесты для проверки установки:
- redis-cli
- auth <пароль>
- ping
- set testkey hello
- get testkey
Если все шаги прошли — установка принята.
Чеклист администратора перед выводом в продакшн
- Настроить бэкапы RDB/AOF и проверить восстановление на тестовой машине.
- Ограничить доступ по bind и фаерволу (firewalld/iptables).
- Перенастроить мониторинг и алертинг (Prometheus, Grafana, Zabbix и т. п.).
- Документировать переименованные команды и пароли.
- Настроить ротацию логов и права доступа к /etc/redis и /var/lib/redis.
Рекомендации по безопасности и твёрдые практики
- Используйте ACL вместо простого requirepass, чтобы разграничивать права доступа для разных клиентов.
- Включите TLS (BUILD_TLS=yes при сборке) для шифрования трафика между клиентами и сервером.
- Закрывайте доступ Redis из публичного интернета; используйте VPN или VPC.
- Отключайте или переименовывайте опасные команды (FLUSHDB, FLUSHALL, DEBUG, CONFIG, SHUTDOWN).
- Защитите конфигурационные файлы правами доступа: chmod 640 /etc/redis/redis.conf и владелец root:redis.
- Используйте мониторинг SLI/SLO для отслеживания задержек операций, пропускной способности и использования памяти.
Security hardening: пример дополнительных настроек в конфиге для продакшна
- save “” # отключить автоматические снимки, если используется AOF и бэкапы вне сервера
- maxmemory-policy allkeys-lru # политика вытеснения
- supervised systemd
- tls-port 6379
TLS и шифрование трафика
Если вы планируете обслуживать клиентов по сети, включите TLS. При сборке используйте BUILD_TLS=yes и настройте в конфиге:
- tls-cert-file, tls-key-file, tls-ca-cert-file
- tls-auth-clients optional/yes
Поскольку сертификаты — это отдельная тема, рассмотрите использование центр сертификации внутри организации или автоматизацию с помощью ACME/Let’s Encrypt для публичных адресов.
Высокая доступность и масштабирование
- Redis Sentinel — обеспечивает обнаружение отказов и автоматическое переключение мастера. Подходит для развертываний с несколькими репликами.
- Redis Cluster — шардирование данных по нодам, масштабирование горизонтально.
- Поддержите репликацию (master-replica) для чтений и резервирования данных.
Выбор зависит от требований по доступности и латентности. Для критичных систем выбирайте комбинацию реплик, Sentinel и регулярных бэкапов.
Отладка и распространённые проблемы
Проблема: Redis не запускается через systemd. Действия:
- Просмотрите логи: sudo journalctl -u redis-server -b
- Провертьте права на /var/lib/redis и /etc/redis/redis.conf
- Убедитесь, что ExecStart указывает на корректный путь к redis-server
Проблема: Клиенты не могут подключиться. Действия:
- Провертье bind и protected-mode в redis.conf
- Проверьте брандмауэр: sudo firewall-cmd –list-all или iptables -L
- Если включён TLS — проверьте корректность сертификатов
Проблема: Команды возвращают ERR unknown command Действия:
- Проверьте, не были ли команды переименованы или отключены в конфиге
- Подключитесь с правами, требуемыми ACL
Ролевые чеклисты
Администратор (DevOps):
- Установить Redis и зависимости
- Создать системного пользователя redis
- Настроить systemd-юнит и автозапуск
- Настроить права на каталоги и конфиг
- Настроить бэкапы и мониторинг
Разработчик:
- Убедиться, что приложение использует корректный клиент и параметризацию соединений
- Тестировать переименованные команды и обработку ошибок
- Использовать пул соединений и корректные timeout
Инженер по безопасности:
- Проверить настройки bind и firewall
- Включить TLS и ACL
- Провести аудит переименованных команд
Playbook: быстрый план развёртывания Redis на новом сервере
- Обновить систему: sudo dnf update -y
- Установить зависимости и пользователя redis
- Установить из AppStream или собрать из исходников с BUILD_TLS=yes при необходимости
- Скопировать redis.conf в /etc/redis и настроить bind, requirepass или ACL, dir
- Установить systemd-юнит и включить сервис
- Настроить мониторинг и бэкапы
- Выполнить проверочные тесты и задокументировать конфигурацию
Шпаргалка команд
- Установка из AppStream:
sudo dnf install redis
sudo systemctl enable --now redis- Сборка и установка из исходников:
sudo dnf install epel-release -y
sudo dnf group install "Development Tools" -y
# зависимости...
cd /usr/src/
wget https://download.redis.io/releases/redis-6.2.5.tar.gz
tar -xzvf redis-6.2.5.tar.gz
cd redis-*/
sudo make BUILD_TLS=yes USE_SYSTEMD=yes
sudo make PREFIX=/usr install- Проверка:
redis-cli
auth <пароль>
ping
set key value
get key- Управление сервисом:
sudo systemctl daemon-reload
sudo systemctl enable redis-server
sudo systemctl start redis-server
sudo systemctl status redis-server
sudo systemctl restart redis-serverПримеры отказов и когда решение не подойдёт
- AppStream версии слишком старые для ваших требований: используйте сборку из исходников или сторонние репозитории.
- Нужна строгая многоуровневая авторизация: применяйте ACL, а не только requirepass.
- Публичный доступ без TLS и фаервола недопустим.
Краткое руководство по миграции с другой ОС
- Экспортируйте RDB/AOF и перенесите файлы в /var/lib/redis на новом сервере.
- Проверьте версии Redis: несовместимость форматов RDB возможна между существенно разными версиями.
- Тестируйте восстановление на стенде перед переносом в продакшн.
Короткая заметка о конфиденциальности
Redis по умолчанию хранит данные в памяти и на диске (RDB/AOF). Убедитесь, что доступ к файлам данных ограничен и что вы защищаете секреты в конфигурации. При требованиях GDPR храните персональные данные с учётом шифрования и политик удаления.
Заключение
Поздравляем — вы познакомились с двумя способами установки Redis на Rocky Linux, узнали о настройке systemd, базовой безопасности, переименовании/отключении опасных команд и методах проверки. Следующие шаги: настроить TLS, внедрить мониторинг и бэкап-процедуры, а также рассмотреть Sentinel или Redis Cluster для обеспечения высокой доступности и масштабирования.
Краткое напоминание: документируйте все изменения конфигурации и храните секреты отдельно от репозиториев кода.
Summary:
- Установка через AppStream проще, но может содержать старые версии.
- Сборка из исходников даёт гибкость и поддержку TLS.
- Безопасность: ACL, TLS, переименование/отключение команд и ограничение доступа по сети.
- Перед выводом в продакшн настройте бэкапы, мониторинг и проверку восстановления.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента