Установка Redis на Debian 13, 12, 11: подробное руководство

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.x8.6.x
Debian 12 (Bookworm)7.0.x8.6.x
Debian 11 (Bullseye)6.0.x7.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 (если нужны только простые кэши, без структур данных)