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

Redis — это высокопроизводительное хранилище данных в памяти, которое используется как кэш (для ускорения веб-сайтов), брокер сообщений (между микросервисами) или хранилище сессий. В отличие от Memcached, Redis поддерживает структуры данных (строки, хеши, списки, множества) и может сохранять данные на диск (персистентность). Главные сложности для новичка: нужно выбрать способ установки (ручное добавление репозитория Redis.io даёт самую свежую версию), понять разницу между сервером (redis-server) и клиентом (redis-tools), а также обязательно настроить пароль и привязку к интерфейсу, потому что Redis по умолчанию не имеет аутентификации и может стать лёгкой мишенью для атак. Кроме того, systemd-сервис называется redis-server, а не просто redis.

💡 В этом руководстве вы установите Redis на Debian тремя способами: через ручное добавление репозитория Redis.io (рекомендованный для свежей версии), через extrepo (проще, но может быть устаревшим) и из стандартного репозитория Debian (старая версия). Вы также узнаете, как настроить безопасность (пароль, привязка к IP), ограничить память, настроить фаервол и решить типичные проблемы.

В этой статье вы узнаете:

  • Как установить Redis через ручное добавление репозитория Redis.io (рекомендованный способ для свежей версии)
  • Как установить Redis через extrepo (проще, но может быть устаревшим)
  • Как установить Redis из стандартного репозитория Debian (старая версия)
  • Как настроить 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)ОбновленияПлюсыМинусы
Ручное
добавление
репозитория
Redis.io
рекомендовано
Официальный
репозиторий
Redis
8.6.xЧерез
apt upgrade
Самая свежая
версия,
полный
контроль
Больше шагов,
нужно вручную
импортировать
ключ
extrepoРепозиторий
Redis.io
через extrepo
8.6.xЧерез
apt upgrade
Проще всего,
автоматическое
управление ключами
Требует
установки
extrepo,
может быть
устаревшим
Стандартный
репозиторий
Debian
Репозитории
Debian
7.0.xЧерез
apt upgrade
Не нужно добавлять репозиторииОчень старые
версии
(Debian 11 —
Redis 6.0)

⚠️ Важно: Репозиторий Redis в extrepo может быть устаревшим. Для получения самой актуальной версии Redis используйте Способ 1 (ручное добавление репозитория Redis.io).

Какие версии 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

💡 Рекомендация: Для получения самой свежей версии используйте Способ 1 (ручное добавление репозитория Redis.io). Extrepo выбирайте только если вы уже используете этот инструмент и готовы проверить актуальность репозитория. Стандартный репозиторий Debian подходит для максимально консервативных систем.

3. 📦 Способ 1: Установка Redis через ручное добавление репозитория Redis.io (рекомендованный)

Этот способ даёт вам самую свежую версию Redis напрямую от разработчиков. Вы получаете автоматические обновления через apt upgrade.

3.1 Импорт GPG-ключа Redis

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor --yes -o /usr/share/keyrings/redis-archive-keyring.gpg

Что делает: Скачивает официальный GPG-ключ репозитория Redis и сохраняет его в бинарном формате.

3.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

Что делает: Создаёт файл репозитория в современном формате DEB822.

3.3 Проверка файла репозитория

cat /etc/apt/sources.list.d/redis.sources

Ожидаемый вывод: Должен содержать URIs: https://packages.redis.io/deb и Suites: trixie (или bookworm, bullseye).

3.4 Обновление списка пакетов и проверка источника

sudo apt update
apt-cache policy redis

Ожидаемый вывод: В строке Candidate должна быть версия 8.x (из репозитория Redis.io), а в таблице версий — https://packages.redis.io/deb.

3.5 Установка Redis

sudo apt install redis -y

Что делает: Устанавливает Redis-сервер (redis-server) и клиентские утилиты (redis-cli).

3.6 Запуск и включение сервиса

sudo systemctl enable --now redis-server

Что делает: Добавляет Redis в автозагрузку и запускает сервис.

⚠️ Важно: Имя сервиса — redis-server, не redis.

3.7 Проверка статуса и активного состояния

systemctl status redis-server
systemctl is-active redis-server

Ожидаемый вывод: active (running) и active.

3.8 Проверка установки пакетов

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' redis-server redis-tools

Ожидаемый вывод:

ii redis-server 8.6.x
ii redis-tools 8.6.x

4. 📦 Способ 2: Установка Redis через extrepo (альтернативный)

extrepo — это инструмент от Debian, который упрощает добавление сторонних репозиториев. Однако репозиторий Redis в extrepo может быть устаревшим. Используйте этот способ только если вы уже работаете с extrepo и готовы проверить актуальность репозитория.

4.1 Установка extrepo и включение репозитория Redis

sudo apt install extrepo -y
sudo extrepo enable redis

4.2 Обновление списка пакетов

sudo apt update

4.3 Проверка источника

apt-cache policy redis

Ожидаемый вывод: В строке Candidate должна быть версия 8.x (из репозитория Redis.io).

4.4 Установка Redis

sudo apt install redis -y

4.5 Запуск и проверка

sudo systemctl enable --now redis-server
systemctl status redis-server

5. 📦 Способ 3: Установка Redis из стандартного репозитория Debian (консервативный)

Этот способ подходит, если вы предпочитаете только официальные пакеты Debian (даже если они старые).

sudo apt install redis-server redis-tools -y
sudo systemctl enable --now redis-server

6. ✅ Проверка работы Redis

6.1 Проверка, что сервер слушает порт

ss -tln | grep 6379

Ожидаемый вывод в терминале:

LISTEN 0      511        127.0.0.1:6379       0.0.0.0:*
LISTEN 0      511            [::1]:6379          [::]:*

6.2 Проверка командой ping

redis-cli ping

Ожидаемый вывод: PONG

6.3 Проверка версии сервера

redis-server --version

6.4 Проверка установки пакетов (ещё раз)

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' redis-server redis-tools

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

7.7 Проверка настроек памяти

redis-cli -a 'ВашСильныйПароль' CONFIG GET maxmemory
redis-cli -a 'ВашСильныйПароль' CONFIG GET maxmemory-policy

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Количество медленных запросов

10. 💡 Опционально: Redis Sentinel (для высокой доступности)

Если вам нужен мониторинг и автоматическое переключение при отказе мастера, установите пакет redis-sentinel:

sudo apt install redis-sentinel -y

Redis Sentinel используется в кластерных конфигурациях для обеспечения высокой доступности. Настройка Sentinel выходит за рамки этого руководства, но пакет устанавливается отдельно.

11. ⚠️ Решение типичных проблем

11.1 Ошибка: Unit redis.service not found

Симптом: systemctl status redis выдаёт ошибку.

Причина: В Debian сервис называется redis-server, а не redis.

Решение: Используйте правильное имя:

sudo systemctl status redis-server

11.2 Ошибка: redis-cli: command not found

Симптом: redis-cli не найден.

Причина: Не установлены клиентские утилиты.

Решение: Установите redis-tools:

sudo apt install redis-tools -y

11.3 Ошибка: NOAUTH Authentication required

Симптом: redis-cli ping возвращает (error) NOAUTH Authentication required.

Причина: Вы установили пароль, но не используете его.

Решение: Используйте -a:

redis-cli -a 'ваш_пароль' ping

11.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).

11.5 APT показывает дублирующиеся источники Redis

Симптом: apt update показывает предупреждения о дублировании источника packages.redis.io.

Причина: Установлены два источника (например, extrepo и ручной репозиторий).

Решение: Удалите один из источников. Для удаления extrepo:

sudo rm -f /etc/apt/sources.list.d/extrepo_redis.sources
sudo rm -f /var/lib/extrepo/keys/redis.asc
sudo apt update

11.6 Redis потребляет слишком много памяти

Симптом: Память сервера заполняется, система начинает использовать swap.

Причина: Не установлен лимит памяти.

Решение: Установите maxmemory в /etc/redis/redis.conf (см. раздел 7.4) и перезапустите Redis.

12. ❌ Удаление Redis

12.1 Удаление пакетов

sudo systemctl stop redis-server
sudo apt remove --purge redis redis-server redis-tools redis-sentinel -y
sudo apt autoremove -y

12.2 Удаление репозитория (если добавляли)

Для ручного репозитория:

sudo rm -f /etc/apt/sources.list.d/redis.sources
sudo rm -f /usr/share/keyrings/redis-archive-keyring.gpg

Для 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 apt update

12.3 Удаление данных (опционально)

⚠️ Осторожно: Удаляет все данные Redis.

sudo rm -rf /var/lib/redis /var/log/redis /etc/redis

12.4 Проверка удаления

apt-cache policy redis-server

Ожидаемый вывод: Installed: (none)

13. 📝 Чек-лист: всё готово к работе

  • [ ] Система обновлена (sudo apt update && sudo apt upgrade -y)
  • [ ] Выбран и выполнен один из способов установки (ручной / extrepo / Debian)
  • [ ] apt-cache policy redis показывает правильный источник (Redis.io для свежей версии)
  • [ ] dpkg-query -W -f='...' redis-server redis-tools показывает ii
  • [ ] systemctl is-active redis-serveractive
  • [ ] redis-cli ping возвращает PONG
  • [ ] Пароль установлен и работает (redis-cli -a 'пароль' ping)
  • [ ] (Для удалённого доступа) bind изменён и UFW настроен

Заключение

Вы установили Redis на Debian. Если вы выбрали ручное добавление репозитория Redis.io — получили самую свежую версию с полным контролем. Если выбрали extrepo — получили простоту, но репозиторий может быть устаревшим. Если выбрали стандартный репозиторий Debian — получили старую версию, но без лишних танцев с репозиториями. Главное, что нужно запомнить: Redis по умолчанию не имеет аутентификации, поэтому обязательно установите пароль и ограничьте доступ по IP. Сервис называется redis-server, а не redis. Для высокой доступности используйте redis-sentinel.

Что дальше:

  • Настройте Redis для кэширования в WordPress через плагин (Redis Object Cache)
  • Используйте Redis как брокер сообщений для Laravel или Celery
  • Настройте персистентность (сохранение на диск) через RDB или AOF
  • Для больших нагрузок изучите Redis Cluster и репликацию
  • Рассмотрите альтернативу — Memcached (если нужны только простые кэши, без структур данных)

Связанные статьи: