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.x | 8.6.x |
| Debian 12 (Bookworm) | 7.0.x | 8.6.x |
| Debian 11 (Bullseye) | 6.0.x | 7.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-server→active - [ ]
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 (если нужны только простые кэши, без структур данных)
Связанные статьи: