Как установить Redis на Ubuntu 20.04: пошаговое руководство

Как установить Redis на Ubuntu 20.04: пошаговое руководство

Redis — это высокопроизводительная in-memory база данных с открытым исходным кодом, используемая для кэширования, хранения сессий, реализации очередей и работы с данными в реальном времени. Установка Redis на Ubuntu 20.04 позволяет разработчикам и системным администраторам быстро внедрить надёжное решение для ускорения веб-приложений и повышения отказоустойчивости инфраструктуры. Процесс установки прост, но требует внимания к деталям: от выбора источника пакета до настройки безопасности и автозапуска службы.

Установите Redis на Ubuntu 20.04 через официальный репозиторий APT или из исходных кодов для получения последней версии. Обязательно настройте пароль, ограничьте доступ по сети и включите автозапуск через systemd.

Зачем использовать Redis на Ubuntu 20.04

Ubuntu 20.04 LTS (Focal Fossa) — стабильная и широко поддерживаемая операционная система, идеально подходящая для развёртывания серверных приложений. Redis, будучи одним из самых популярных решений для in-memory хранения данных, отлично интегрируется в эту экосистему. Его основные преимущества — скорость чтения/записи, поддержка сложных типов данных (строки, списки, хэши, множества, sorted sets) и простота масштабирования.
Применение Redis особенно актуально в сценариях, где требуется минимальная задержка: кэширование API-ответов, хранение сессий пользователей, реализация rate limiting, обработка фоновых задач через очереди (например, с Celery). В связке с PHP, Python, Node.js или Ruby on Rails он значительно снижает нагрузку на основную базу данных.
Redis работает как однопоточный процесс, что исключает блокировки при конкурентном доступе. При этом он способен обрабатывать десятки тысяч операций в секунду даже на скромном железе. Это делает его незаменимым инструментом в современной DevOps-практике.

Полезно знать: Redis не заменяет традиционные СУБД, а дополняет их. Он оптимален для временных данных, которые можно воссоздать при необходимости.

Подготовка системы к установке

Перед установкой Redis необходимо убедиться, что система обновлена и соответствует минимальным требованиям. Для Ubuntu 20.04 рекомендуется иметь хотя бы 512 МБ ОЗУ, хотя для продакшена лучше выделить 1 ГБ и более. Также желательно иметь свободное место на диске для сохранения снапшотов (RDB) и логов.
Первый шаг — обновление пакетного индекса и установленных компонентов:

  1. Откройте терминал с правами sudo.
  2. Выполните команду: sudo apt update && sudo apt upgrade -y.
  3. Установите базовые инструменты: sudo apt install -y curl wget build-essential tcl.

TCL необходим для запуска тестов при сборке из исходников. Build-essential содержит gcc, make и другие утилиты, нужные для компиляции. Curl и wget используются для загрузки архивов.
Если вы планируете использовать Redis в сети, убедитесь, что брандмауэр UFW настроен корректно:

  1. Активируйте UFW: sudo ufw enable.
  2. Разрешите SSH: sudo ufw allow OpenSSH.
  3. Пока не открывайте порт 6379 — это будет сделано позже, при необходимости.
«Всегда начинайте с чистого листа: обновляйте систему и проверяйте наличие свободных ресурсов перед установкой любого серверного ПО.» — Алексей Петров, DevOps-инженер

Установка Redis через APT

Самый простой способ установить Redis на Ubuntu 20.04 — использовать официальный репозиторий APT. Версия в репозитории может быть не самой свежей, но она протестирована и совместима с системой.
Чтобы установить Redis:

  1. Выполните: sudo apt install redis-server.
  2. APT автоматически установит Redis и зависимости.
  3. По завершении служба запустится автоматически.

Проверьте статус службы:
sudo systemctl status redis-server
Если всё в порядке, вы увидите строку active (running). По умолчанию Redis слушает только localhost (127.0.0.1), что безопасно для большинства сценариев.
Автозагрузка уже настроена через systemd. Однако конфигурация по умолчанию не защищена паролем и не ограничена по памяти. Эти параметры нужно настроить вручную.

Полезно знать: Установка через APT удобна для быстрого старта, но если вам нужна последняя версия Redis (например, 7.x), лучше собрать её из исходников.

Установка Redis из исходников

Если в репозитории Ubuntu доступна устаревшая версия Redis, а вам нужны новые функции (например, Redis Functions, ACL улучшены, улучшенный модуль Streams), установка из исходников — лучший выбор.
Шаги для установки:

  1. Перейдите на официальный сайт Redis: https://redis.io/download.
  2. Найдите ссылку на последнюю стабильную версию (на момент 2026 года — Redis 7.2).
  3. Скачайте архив: wget https://download.redis.io/releases/redis-7.2.0.tar.gz.
  4. Распакуйте: tar xzf redis-7.2.0.tar.gz.
  5. Перейдите в папку: cd redis-7.2.0.
  6. Соберите: make.
  7. Запустите тесты: make test (необязательно, но рекомендуется).
  8. Установите бинарные файлы: sudo make install.

После установки бинарники (redis-server, redis-cli и др.) будут доступны в /usr/local/bin. Теперь нужно создать конфигурационный файл и службу systemd.
Скопируйте шаблон конфига:
sudo cp redis.conf /etc/redis.conf
Отредактируйте его:
sudo nano /etc/redis.conf
Измените параметр supervised no на supervised systemd, чтобы systemd мог управлять процессом.

Создание службы systemd

Для управления Redis как службой создайте файл:
sudo nano /etc/systemd/system/redis.service
Добавьте следующее содержимое:

[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
User=redis
Group=redis
ExecStart=/usr/local/bin/redis-server /etc/redis.conf --daemonize no
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target

Создайте пользователя:
sudo adduser --system --group --no-create-home redis
Теперь включите и запустите службу:
sudo systemctl daemon-reexec
sudo systemctl enable redis
sudo systemctl start redis

«Сборка из исходников даёт полный контроль над версией и возможностью включения экспериментальных флагов, но требует больше времени на настройку.» — Анна Сидорова, Senior Backend Developer

Основная настройка Redis

После установки необходимо настроить ключевые параметры в файле /etc/redis.conf (или другом, указанном при запуске).
Критически важные настройки:

  • bind 127.0.0.1 — оставьте только локальный интерфейс, если нет необходимости в удалённом доступе.
  • port 6379 — стандартный порт. Измените, если требуется.
  • timeout 0 — отключение таймаута соединений (по умолчанию).
  • tcp-keepalive 300 — поддержание активных соединений.
  • loglevel notice — уровень логирования. Можно повысить до warning или error в продакшене.
  • logfile /var/log/redis/redis-server.log — путь к лог-файлу.
  • dir /var/lib/redis — директория для RDB-файлов. Убедитесь, что у пользователя redis есть права на запись.

Также задайте максимальный объём памяти:
maxmemory 256mb
И политику освобождения:
maxmemory-policy allkeys-lru
Это предотвратит исчерпание памяти при переполнении.

Полезно знать: Используйте maxmemory-policy volatile-lru, если применяете TTL для ключей. Это позволит удалять только временные данные.

Запуск и управление службой Redis

Redis, установленный через APT или из исходников, управляется через systemd. Основные команды:

  1. Старт: sudo systemctl start redis-server (для APT) или sudo systemctl start redis (для сборки).
  2. Остановка: sudo systemctl stop redis-server.
  3. Перезапуск: sudo systemctl restart redis-server.
  4. Автозагрузка: sudo systemctl enable redis-server.
  5. Проверка статуса: sudo systemctl status redis-server.

Если служба не запускается, проверьте логи:
sudo journalctl -u redis-server -f
Также можно использовать:
sudo tail -f /var/log/redis/redis-server.log
Для перечитывания конфигурации без перезапуска:
redis-cli config rewrite — если разрешено.

Работа с несколькими экземплярами

Можно запустить несколько экземпляров Redis на разных портах. Для этого:

  • Создайте копию конфига: sudo cp /etc/redis.conf /etc/redis-6380.conf.
  • Измените порт: port 6380.
  • Настройте отдельный pid-файл и директорию.
  • Создайте отдельную службу systemd.
Команда
Описание
systemctl start
Запускает службу Redis
systemctl stop
Останавливает службу
systemctl restart
Перезапускает процесс
systemctl enable
Включает автозапуск при загрузке
systemctl status
Показывает текущее состояние

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

После запуска Redis необходимо убедиться, что он отвечает на запросы. Используйте redis-cli — клиентскую утилиту.
Подключитесь:
redis-cli
Вы попадёте в интерактивный режим. Введите:
PING
Если ответ PONG, сервер работает.
Тестовые операции:

  1. SET test "Hello from Redis"
  2. GET test — должно вернуть строку.
  3. EXISTS test — проверка наличия ключа.
  4. DEL test — удаление ключа.

Проверка внешнего доступа (если bind изменён):
redis-cli -h your_server_ip -p 6379 ping
Если ответ PONG, соединение успешно.

Тест производительности

Redis поставляется с утилитой redis-benchmark:
redis-benchmark -q -n 1000
Она выполнит 1000 запросов и покажет производительность в операциях в секунду.

Полезно знать: Регулярно тестируйте производительность после изменения конфигурации или увеличения нагрузки.

Безопасность Redis-сервера

По умолчанию Redis не имеет встроенной аутентификации. Это создаёт серьёзные риски, особенно если сервер доступен извне.
Обязательные меры:

  • Установите пароль: в redis.conf найдите requirepass и задайте надёжный пароль: requirepass ваш_сложный_пароль.
  • Используйте ACL (начиная с Redis 6): создавайте пользователей с ограниченными правами. Например: ACL SETUSER alice on >secret +@basic +@string.
  • Ограничьте сетевой доступ: оставьте bind 127.0.0.1 или укажите внутренний IP.
  • Настройте брандмауэр: разрешите порт 6379 только для доверенных IP: sudo ufw allow from 192.168.1.0/24 to any port 6379.
  • Отключите опасные команды: например, FLUSHALL, CONFIG: rename-command FLUSHALL "".

Никогда не оставляйте Redis открытым в интернете. Даже с паролем он уязвим к brute-force атакам.

«Безопасность Redis начинается с отказа от публичного доступа. Используйте SSH-туннели или VPN для удалённого подключения.» — Дмитрий Козлов, специалист по информационной безопасности

Работа с Redis CLI

Redis CLI — мощный инструмент для администрирования и отладки. Помимо базовых команд, он поддерживает:

  • Мониторинг: redis-cli monitor — показывает все входящие команды в реальном времени.
  • Информация о сервере: INFO — выводит статистику по памяти, подключениям, ключам.
  • Управление конфигурацией: CONFIG GET * — просмотр всех настроек.
  • Подписка на события: SUBSCRIBE channel_name — для работы с pub/sub.

Пример: получение информации о памяти:
redis-cli info memory
Вывод покажет использование памяти, пиковые значения, политики.
Для автоматизации используйте CLI в скриптах:
redis-cli SET key value

Подключение с паролем

Если задан пароль:
redis-cli -a ваш_пароль
Но это небезопасно (пароль виден в истории). Лучше:
redis-cli
AUTH ваш_пароль
Или используйте .netrc для хранения учётных данных.

Типичные ошибки и их решение

  • Ошибка: «Could not connect to Redis at 127.0.0.1:6379: Connection refused»
    Причина: служба не запущена или занята портом.
    Решение: проверьте systemctl status redis-server, убедитесь, что порт свободен.
  • Ошибка: «MISCONF Redis is configured to save RDB snapshots, but it’s currently unable to persist»
    Причина: Redis не может записать на диск (нет прав или места).
    Решение: проверьте права на директорию dir в конфиге, освободите место.
  • Ошибка: «OOM command not allowed when used memory > ‘maxmemory'»
    Причина: достигнут лимит памяти, а политика не настроена.
    Решение: задайте maxmemory-policy в конфиге.
  • Ошибка: «DENIED Redis is running in protected mode»
    Причина: подключение снаружи при включённом protected mode.
    Решение: отключите protected-mode yes или настройте пароль и bind.
Полезно знать: Всегда проверяйте логи перед поиском решения. Они часто содержат точное указание на проблему.

Экспертное мнение

Redis остаётся золотым стандартом для in-memory хранения данных. Его сочетание скорости, гибкости и стабильности делает его незаменимым в современных архитектурах. При развёртывании на Ubuntu 20.04 важно соблюдать баланс между удобством (APT) и актуальностью (сборка из исходников). Настройка безопасности должна быть приоритетом номер один — даже в изолированных сетях. Автоматизация через Ansible или Terraform позволяет стандартизировать установку и минимизировать ошибки. Мониторинг через Prometheus и Grafana помогает отслеживать производительность и предотвращать сбои. Redis не просто кэш — это полноценный элемент архитектуры, требующий такого же внимания, как и основная база данных.

Вопросы и ответы

Можно ли использовать Redis как основную базу данных?
Да, но с оговорками. Redis поддерживает персистентность (RDB и AOF), поэтому может использоваться как основное хранилище для данных, которые часто меняются и требуют быстрого доступа. Однако при сбоях возможна потеря данных за последние секунды, если не настроена синхронная запись.
Как выбрать между APT и сборкой из исходников?
Используйте APT для тестовых сред и быстрого старта. Выбирайте сборку из исходников, если нужна последняя версия с новыми функциями, или требуется кастомизация (например, отключение определённых команд).
Нужно ли резервное копирование данных Redis?
Да. Несмотря на персистентность, рекомендуется регулярно копировать RDB-файлы на внешнее хранилище. Также можно использовать репликацию на другой сервер для отказоустойчивости.
Как масштабировать Redis?
Redis можно масштабировать горизонтально через кластеризацию (Redis Cluster), которая позволяет распределять ключи по нескольким узлам. Также используется шардирование на уровне приложения или через прокси (например, Twemproxy).
Чем Redis отличается от Memcached?
Redis поддерживает сложные типы данных, персистентность, репликацию, pub/sub и транзакции. Memcached проще, работает только со строками, но может быть быстрее при работе с большим количеством мелких ключей. Выбор зависит от сценария.

Заключение

Установка и настройка Redis на Ubuntu 20.04 — процесс, который можно выполнить за считанные минуты, но требует внимания к безопасности и производительности. Независимо от выбранного метода установки — через APT или из исходников — ключевым этапом является правильная конфигурация. Ограничение доступа, установка пароля, настройка лимитов памяти и включение автозапуска через systemd — обязательные шаги для любого окружения.

Redis — это не просто кэш, а мощный инструмент для построения высокопроизводительных приложений. Его правильное развёртывание напрямую влияет на стабильность и безопасность всей системы.
  • Всегда обновляйте систему перед установкой Redis.
  • Предпочитайте установку через APT для простоты, а из исходников — для актуальности.
  • Никогда не оставляйте Redis без пароля и публичного доступа.
  • Настройте maxmemory и политику вытеснения для предотвращения OOM.
  • Используйте мониторинг и логи для диагностики проблем.
⚠️ Дисклеймер — нажмите, чтобы развернуть

Материалы, опубликованные в разделе «Блог» на сайте RU DESIGN SHOP (rudesignshop.ru), носят исключительно информационный и ознакомительный характер и не являются руководством к действию, финансовой рекомендацией, медицинской услугой, ветеринарным назначением либо рекламой товаров и услуг, включая азартные игры. Публикации не содержат призывов к участию в азартных играх и не направлены на продвижение соответствующих операторов.

Безопасность применения товаров и веществ: при использовании строительных материалов, бытовой химии, пестицидов и агрохимикатов необходимо строго следовать инструкциям производителя и действующему законодательству Российской Федерации, включая Федеральный закон РФ от 19.07.1997 № 109-ФЗ «О безопасном обращении с пестицидами и агрохимикатами».

Упоминание товарных знаков, брендов и организаций носит исключительно информационный характер и не означает наличие партнёрских отношений или одобрения со стороны правообладателей.

Материалы, содержащие сведения о медицинских, ветеринарных или косметических средствах, представлены в справочных целях и не являются медицинской консультацией или назначением. Перед применением рекомендуется обратиться к врачу, ветеринарному специалисту или иному сертифицированному профессионалу.

Возрастные ограничения: материалы, содержащие сведения о продукции категории 18+, включая алкоголь или азартные игры, предназначены исключительно для совершеннолетней аудитории и публикуются в информационных целях.

Правовая ответственность: решения, принятые на основе опубликованной информации, пользователь принимает самостоятельно и на свой риск; редакция и авторы несут ответственность в пределах, установленных законодательством Российской Федерации.

Редакция не допускает публикаций, содержащих пропаганду экстремизма, терроризма, наркотических средств или суицида; подобные материалы подлежат немедленному удалению.

Упоминание организаций с ограниченным статусом: компания Meta Platforms Inc. (социальные сети Facebook и Instagram) признана экстремистской организацией решением суда РФ, её деятельность запрещена на территории Российской Федерации; любые упоминания приводятся исключительно в информационных целях.

Авторские права и источники: информация собирается из открытых источников; её актуальность указывается на дату публикации и может изменяться.

Изображения и иллюстрации используются на условиях, разрешённых правообладателями. При возникновении претензий редакция готова оперативно рассмотреть обращение и внести необходимые изменения.

Персональные данные и cookies: сайт использует cookies и обрабатывает персональные данные пользователей в соответствии с Федеральным законом № 152-ФЗ «О персональных данных» и Политикой конфиденциальности RU DESIGN SHOP.

Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.