Установка Redis на Debian 11

Redis — это свободное, с открытым исходным кодом, кроссплатформенное NoSQL in-memory хранилище структур данных типа «ключ-значение». Его часто используют как сервер базы данных, кэш и брокер сообщений. Redis написан на C и поддерживает репликацию для организации отказоустойчивых кластеров.
Требования
- Сервер с установленным Debian 11.
- Настроен пароль root или доступ через sudo.
Установка Redis
В репозитории Debian 11 пакет Redis доступен по умолчанию. Установите его командой:
apt-get install redis-server -yПосле установки проверьте состояние сервиса:
systemctl status redis-serverОжидаемый пример вывода:
? redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2021-09-26 02:40:45 UTC; 3s ago
Docs: http://redis.io/documentation,
man:redis-server(1)
Main PID: 379829 (redis-server)
Status: "Ready to accept connections"
Tasks: 5 (limit: 9510)
Memory: 6.9M
CPU: 62ms
CGroup: /system.slice/redis-server.service
??379829 /usr/bin/redis-server 127.0.0.1:6379
Sep 26 02:40:45 debian11 systemd[1]: Starting Advanced key-value store...
Sep 26 02:40:45 debian11 systemd[1]: Started Advanced key-value store.По умолчанию Redis слушает порт 6379. Можно проверить, какие процессы слушают порты:
ss -antpl | grep redisПример вывода:
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=379829,fd=6))
LISTEN 0 1024 127.0.0.1:9121 0.0.0.0:* users:(("redis_exporter",pid=14922,fd=3))
LISTEN 0 511 [::1]:6379 [::]:* users:(("redis-server",pid=379829,fd=7)) Подключение и базовая проверка
Запустите клиент redis-cli:
redis-cliПромпт клиента будет выглядеть так:
127.0.0.1:6379>Выполните команду ping:
127.0.0.1:6379> pingОжидаемый ответ:
PONGКонфигурация Redis
Обычно Redis используют для кэширования. Основной конфигурационный файл — /etc/redis/redis.conf. Откройте его в редакторе:
nano /etc/redis/redis.confЧтобы разрешить удалённые подключения, раскомментируйте или удалите строчку, ограничивающую привязку:
#bind 127.0.0.1 ::1Чтобы ограничить использование памяти и включить политику вытеснения, добавьте в конец файла:
maxmemory 500mb
maxmemory-policy allkeys-lruСохраните файл и перезапустите сервис для применения настроек:
systemctl restart redis-serverПроверьте, что Redis теперь слушает на всех интерфейсах:
ss -antpl | grep redisПример вывода:
LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* users:(("redis-server",pid=380643,fd=7))
LISTEN 0 1024 127.0.0.1:9121 0.0.0.0:* users:(("redis_exporter",pid=14922,fd=3))
LISTEN 0 511 [::]:6379 [::]:* users:(("redis-server",pid=380643,fd=6)) Удалённое подключение
Если на сервере установлен UFW, откройте доступ к порту 6379 только с разрешённых адресов:
ufw allow proto tcp from remote-server-ip to any port 6379Подключитесь с удалённой машины:
redis-cli -h redis-server-ip pingПри правильной настройке вы получите:
PONGВажно: открывать порт 6379 в общем доступе небезопасно. Разрешайте доступ только с конкретных IP и применяйте аутентификацию и шифрование поверх TLS, если Redis будет доступен по сети.
Безопасность и твики для продакшена
- Включите пароль в конфиге: установите requirepass и используйте защищённое хранилище секретов.
- Ограничьте доступ через firewall до доверенных подсетей.
- Используйте TLS/SSL (если требуется удалённый доступ через интернет). Для этого можно собрать Redis с поддержкой TLS или разместить его за обратным прокси с TLS.
- Настройте бэкапы RDB/AOF и регулярную проверку восстановления.
- Мониторьте использование памяти и метрики (redis_exporter, Prometheus).
Методика установки и проверки (мини-процесс)
- Подготовка: обновите apt и убедитесь в наличии доступа root.
- Установка: apt-get install redis-server -y.
- Быстрая проверка: systemctl status и redis-cli ping.
- Конфигурация: отредактируйте /etc/redis/redis.conf (bind, maxmemory, requirepass).
- Перезапуск и тест: systemctl restart; ss -antpl | grep redis; удалённый ping.
- Безопасность: firewall + пароль + TLS.
- Мониторинг и бэкапы: подключите экспорт метрик и настройте резервное копирование.
Роли и чек-листы
Администратор системы:
- Проверил доступ к серверу и права.
- Установил пакет redis-server.
- Настроил firewall и проверил порт 6379.
- Настроил резервное копирование.
Разработчик приложения:
- Подключился к Redis с тестовой машины.
- Выполнил команды SET/GET и проверил время отклика.
- Убедился, что политика вытеснения подходит под нагрузку.
Оператор мониторинга:
- Настроил экспортер метрик.
- Создал дашборды и оповещения по памяти и доступности.
Частые ошибки и как их исправлять
- Проблема: redis-cli не отвечает на удалённом хосте. Причина: bind ограничивает адреса или firewall блокирует порт. Решение: проверьте bind в /etc/redis/redis.conf и правила UFW/iptables.
- Проблема: превышение памяти и падение сервиса. Причина: отсутствует maxmemory. Решение: задайте maxmemory и подходящую политику вытеснения.
- Проблема: незащищённый сетевой доступ. Решение: включите requirepass, ограничьте IP, используйте TLS.
Фактбокс
- Порт по умолчанию: 6379
- Конфигурационный файл: /etc/redis/redis.conf
- Тип хранилища: in-memory, с опциями снятия снапшотов на диск (RDB/AOF)
Критерии приёмки
- Redis установлен и запущен: systemctl status redis-server показывает active (running).
- Локальный ping возвращает PONG через redis-cli.
- При необходимости удалённый ping возвращает PONG после настройки firewall.
- Конфигурация памяти и политика вытеснения указаны и применены.
Глоссарий
- Redis: in-memory key-value хранилище данных.
- RDB: снапшоты Redis на диск.
- AOF: журнал команд для восстановления данных.
Заключение
В этой инструкции описано, как быстро установить и настроить Redis на Debian 11, выполнить базовую проверку работы сервиса и подготовить сервер к ограниченному удалённому доступу. Для продакшна обязательно добавьте аутентификацию, ограничьте доступ по сети и настройте бэкапы и мониторинг.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента