Redis — это высокопроизводительное хранилище данных в памяти, которое используется как кэш (для ускорения веб-сайтов), брокер сообщений (между микросервисами) или хранилище сессий. В отличие от Memcached, Redis поддерживает структуры данных (строки, хеши, списки, множества) и может сохранять данные на диск (персистентность). Главные сложности для новичка: нужно выбрать способ установки (через extrepo — проще всего), понять разницу между сервером (redis-server) и клиентом (redis-tools), а также обязательно настроить пароль и привязку к интерфейсу, потому что Redis по умолчанию не имеет аутентификации и может стать лёгкой мишенью для атак. Кроме того, systemd-сервис называется redis-server, а не просто redis.
💡 В этом руководстве вы установите Redis на Debian тремя способами: через extrepo (рекомендованный), из стандартного репозитория Debian и ручным добавлением репозитория Redis.io. Вы также узнаете, как настроить безопасность (пароль, привязка к IP), ограничить память, настроить фаервол и решить типичные проблемы.
В этой статье вы узнаете:
- Как установить Redis через
extrepo(рекомендованный способ) - Как установить Redis из стандартного репозитория Debian
- Как установить Redis через ручное добавление репозитория Redis.io
- Как настроить Redis: пароль, привязка к интерфейсу, лимит памяти
- Как настроить UFW для удалённого доступа (если нужно)
- Как управлять Redis через командную строку (
redis-cli) - Как решить типичные проблемы:
redis.service not found,NOAUTH,Connection refused
Для кого: администраторы веб-серверов, разработчики, а также все, кому нужно быстрое кэширование или брокер сообщений на Debian 11, 12 или 13.
1. 🔧 Предварительные требования
Перед установкой убедитесь, что:
- У вас установлена Debian 11, 12 или 13
- Подключение к интернету стабильно
- У вас есть права sudo
⚠️ ВАЖНО: Проверьте права sudo перед установкой
Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:
sudo whoami
Что делает: sudo выполняет команду от имени суперпользователя, whoami показывает имя текущего пользователя.
Зачем: Эта команда проверяет, есть ли у вас права sudo. Без них вы не сможете устанавливать пакеты.
✅ Если выводит root — всё в порядке, можете продолжать.
❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.
1.1 Обновление системы
Перед установкой всегда обновляйте список пакетов.
sudo apt update && sudo apt upgrade -y
Что делает:
sudo— права суперпользователяapt update— обновляет список доступных пакетов из репозиториев&&— выполняет следующую команду только если предыдущая успешнаapt upgrade -y— обновляет все установленные пакеты до последних версий
Зачем: Это стандартная практика безопасности перед установкой нового ПО.
1.2 Установка вспомогательных пакетов
sudo apt install ca-certificates curl gpg -y
Что делает: Устанавливает инструменты для безопасной работы с HTTPS-репозиториями и GPG-ключами.
2. 📊 Сравнение способов установки Redis
В Debian есть три основных способа установки Redis. Вот их сравнение:
| Метод | Откуда | Версия (Debian 12) | Обновления | Плюсы | Минусы |
|---|---|---|---|---|---|
| extrepo рекомендовано | Репозиторий Redis.io через extrepo | 8.6.x | Через apt upgrade | Проще всего, автоматическое управление ключами | Требует установки extrepo |
| Стандартный репозиторий Debian | Репозитории Debian | 7.0.x | Через apt upgrade | Не нужно добавлять репозитории | Очень старые версии (Debian 11 — Redis 6.0) |
| Ручное добавление репозитория Redis.io | Официальный репозиторий Redis | 8.6.x | Через apt upgrade | Полный контроль | Больше шагов, нужно вручную импортировать ключ |
Какие версии Redis в разных Debian:
| Версия Debian | Стандартный репозиторий | Репозиторий Redis.io |
|---|---|---|
| Debian 13 (Trixie) | 8.0.x | 8.6.x |
| Debian 12 (Bookworm) | 7.0.x | 8.6.x |
| Debian 11 (Bullseye) | 6.0.x | 7.4.x |
💡 Рекомендация: Для большинства пользователей подойдёт extrepo. Это официальный инструмент Debian для управления сторонними репозиториями, он сам скачивает ключи и создаёт файлы. Ручной способ выбирайте, если вам нужен точный контроль.
3. 📦 Способ 1: Установка Redis через extrepo (рекомендованный)
extrepo — это инструмент от Debian, который упрощает добавление сторонних репозиториев.
3.1 Установка extrepo и включение репозитория Redis
sudo apt install extrepo -y
sudo extrepo enable redis
Что делает: Устанавливает extrepo и добавляет официальный репозиторий Redis.io в источники APT.
3.2 Обновление списка пакетов
sudo apt update
3.3 Установка Redis
sudo apt install redis -y
Что делает: Устанавливает Redis-сервер (redis-server) и клиентские утилиты (redis-cli).
3.4 Запуск и включение сервиса
sudo systemctl enable --now redis-server
Что делает: Добавляет Redis в автозагрузку и запускает сервис.
3.5 Проверка статуса
systemctl status redis-server
✅ Ожидаемый вывод в терминале (сокращённо):
● redis-server.service - Advanced key-value store
Loaded: loaded (/lib/systemd/system/redis-server.service; enabled)
Active: active (running)
⚠️ Важно: Имя сервиса — redis-server, не redis.
4. 📦 Способ 2: Установка Redis из стандартного репозитория Debian
Этот способ подходит, если вы предпочитаете только официальные пакеты Debian (даже если они старые).
sudo apt install redis-server redis-tools -y
sudo systemctl enable --now redis-server
5. 📦 Способ 3: Установка Redis через ручное добавление репозитория Redis.io
Этот способ подходит, если вы хотите полный контроль или используете автоматизацию.
5.1 Импорт GPG-ключа Redis
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
5.2 Создание файла репозитория
CODENAME=$(. /etc/os-release && echo "$VERSION_CODENAME")
ARCH=$(dpkg --print-architecture)
sudo tee /etc/apt/sources.list.d/redis.sources > /dev/null <<EOF
Types: deb
URIs: https://packages.redis.io/deb
Suites: ${CODENAME}
Components: main
Architectures: ${ARCH}
Signed-By: /usr/share/keyrings/redis-archive-keyring.gpg
EOF
5.3 Установка Redis
sudo apt update
sudo apt install redis -y
sudo systemctl enable --now redis-server
6. ✅ Проверка работы Redis
6.1 Проверка, что сервер слушает порт
ss -tlnp | grep redis-server
✅ Ожидаемый вывод в терминале:
LISTEN 0 511 127.0.0.1:6379 0.0.0.0:* users:(("redis-server",pid=1234,fd=6))
6.2 Проверка командой ping
redis-cli ping
✅ Ожидаемый вывод: PONG
6.3 Проверка версии сервера
redis-server --version
7. ⚙️ Настройка безопасности Redis (ОБЯЗАТЕЛЬНО!)
Redis по умолчанию не имеет аутентификации и слушает только 127.0.0.1. Если вы планируете подключаться к Redis с других серверов, обязательно настройте пароль и ограничьте доступ по IP.
7.1 Редактирование конфигурационного файла
sudo nano /etc/redis/redis.conf
7.2 Установка пароля
Найдите строку # requirepass foobared и замените на:
requirepass ВашСильныйПароль
Что делает: Устанавливает пароль для доступа к Redis.
7.3 Привязка к конкретному IP (если нужен удалённый доступ)
По умолчанию Redis слушает только 127.0.0.1 (безопасно). Если вам нужно подключаться с других серверов, измените строку bind:
bind 127.0.0.1 192.168.1.100
Что делает: Разрешает подключения с локального IP и с указанного IP в локальной сети.
⚠️ Никогда не ставьте bind 0.0.0.0 без пароля и фаервола!
7.4 Ограничение памяти и политика вытеснения
Добавьте или измените строки:
maxmemory 512mb
maxmemory-policy allkeys-lru
Что делает:
maxmemory— ограничение памяти (512 МБ)maxmemory-policy— политика вытеснения:allkeys-lru— удалять наименее используемые ключи
7.5 Применение изменений
sudo systemctl restart redis-server
7.6 Проверка пароля
redis-cli -a 'ВашСильныйПароль' ping
✅ Ожидаемый вывод: PONG
8. 🔥 Настройка UFW для удалённого доступа
Если Redis должен принимать подключения с других серверов, настройте фаервол.
8.1 Разрешить SSH (чтобы не заблокировать себя)
sudo ufw allow ssh
8.2 Разрешить доступ к Redis с конкретного IP
sudo ufw allow proto tcp from 192.168.1.50 to any port 6379
8.3 Включить UFW
sudo ufw enable
8.4 Проверка правил
sudo ufw status numbered
✅ Ожидаемый вывод:
Status: active
To Action From
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 6379/tcp ALLOW IN 192.168.1.50
9. 📝 Основные команды Redis CLI
| Команда | Что делает |
|---|---|
redis-cli -a 'пароль' ping | Проверка соединения |
redis-cli -a 'пароль' set key value | Установить значение |
redis-cli -a 'пароль' get key | Получить значение |
redis-cli -a 'пароль' keys * | Показать все ключи (осторожно, большая база!) |
redis-cli -a 'пароль' flushall | Очистить всю БД (необратимо!) |
redis-cli -a 'пароль' slowlog len | Количество медленных запросов |
redis-cli -a 'пароль' config get maxmemory | Получить настройки памяти |
10. ⚠️ Решение типичных проблем
10.1 Ошибка: Unit redis.service not found
Симптом: systemctl status redis выдаёт ошибку.
Причина: В Debian сервис называется redis-server, а не redis.
Решение: Используйте правильное имя:
sudo systemctl status redis-server
10.2 Ошибка: redis-cli: command not found
Симптом: redis-cli не найден.
Причина: Не установлены клиентские утилиты.
Решение: Установите redis-tools:
sudo apt install redis-tools -y
10.3 Ошибка: NOAUTH Authentication required
Симптом: redis-cli ping возвращает (error) NOAUTH Authentication required.
Причина: Вы установили пароль, но не используете его.
Решение: Используйте -a:
redis-cli -a 'ваш_пароль' ping
10.4 Ошибка: Connection refused при удалённом подключении
Симптом: При попытке подключиться с другого сервера: Connection refused.
Причина: Redis слушает только 127.0.0.1, или фаервол блокирует порт.
Пошаговое решение:
Шаг 1: На сервере проверьте, какой IP слушает Redis:
sudo ss -tlnp | grep 6379
Шаг 2: Если только 127.0.0.1 — измените bind в /etc/redis/redis.conf (см. раздел 7.3).
Шаг 3: Проверьте UFW:
sudo ufw status | grep 6379
Если правила нет — добавьте (раздел 8).
10.5 Redis потребляет слишком много памяти
Симптом: Память сервера заполняется, система начинает использовать swap.
Причина: Не установлен лимит памяти.
Решение: Установите maxmemory в /etc/redis/redis.conf и перезапустите Redis.
11. ❌ Удаление Redis
Удаление пакетов
sudo systemctl stop redis-server
sudo apt remove --purge redis redis-server redis-tools -y
sudo apt autoremove -y
Удаление репозитория (если добавляли)
Для extrepo:
sudo extrepo disable redis
sudo rm -f /etc/apt/sources.list.d/extrepo_redis.sources
sudo rm -f /var/lib/extrepo/keys/redis.asc
Для ручного репозитория:
sudo rm -f /etc/apt/sources.list.d/redis.sources
sudo rm -f /usr/share/keyrings/redis-archive-keyring.gpg
Удаление данных (опционально)
⚠️ Осторожно: Удаляет все данные Redis.
sudo rm -rf /var/lib/redis /var/log/redis /etc/redis
Проверка удаления
apt-cache policy redis-server
✅ Ожидаемый вывод: Installed: (none)
12. 📝 Чек-лист: всё готово к работе
- [ ] Система обновлена (
sudo apt update && sudo apt upgrade -y) - [ ] Выбран и выполнен один из способов установки (extrepo / Debian / ручной)
- [ ]
redis-cli pingвозвращаетPONG - [ ] Пароль установлен и работает (
redis-cli -a 'пароль' ping) - [ ] (Для удалённого доступа)
bindизменён и UFW настроен - [ ] Сервис активен (
systemctl status redis-serverпоказываетactive (running))
Заключение
Вы установили Redis на Debian. Если вы выбрали extrepo — получили самый простой способ с актуальной версией. Если выбрали стандартный репозиторий Debian — получили старую версию, но без лишних танцев с репозиториями. Если добавили репозиторий вручную — получили полный контроль. Главное, что нужно запомнить: Redis по умолчанию не имеет аутентификации, поэтому обязательно установите пароль и ограничьте доступ по IP. Сервис называется redis-server, а не redis.
Что дальше:
- Настройте Redis для кэширования в WordPress через плагин (Redis Object Cache)
- Используйте Redis как брокер сообщений для Laravel или Celery
- Настройте персистентность (сохранение на диск) через RDB или AOF
- Для больших нагрузок изучите Redis Cluster и репликацию
- Рассмотрите альтернативу — Memcached (если нужны только простые кэши, без структур данных)