Как установить Redis на Ubuntu 20.04: пошаговое руководство
Redis — это высокопроизводительная in-memory база данных с открытым исходным кодом, используемая для кэширования, хранения сессий, реализации очередей и работы с данными в реальном времени. Установка Redis на Ubuntu 20.04 позволяет разработчикам и системным администраторам быстро внедрить надёжное решение для ускорения веб-приложений и повышения отказоустойчивости инфраструктуры. Процесс установки прост, но требует внимания к деталям: от выбора источника пакета до настройки безопасности и автозапуска службы.
- Зачем использовать Redis на Ubuntu 20.04
- Подготовка системы к установке
- Установка Redis через APT
- Установка Redis из исходников
- Создание службы systemd
- Основная настройка Redis
- Запуск и управление службой Redis
- Работа с несколькими экземплярами
- Проверка работоспособности
- Тест производительности
- Безопасность Redis-сервера
- Работа с Redis CLI
- Подключение с паролем
- Типичные ошибки и их решение
- Экспертное мнение
- Вопросы и ответы
- Заключение
Зачем использовать 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 необходимо убедиться, что система обновлена и соответствует минимальным требованиям. Для Ubuntu 20.04 рекомендуется иметь хотя бы 512 МБ ОЗУ, хотя для продакшена лучше выделить 1 ГБ и более. Также желательно иметь свободное место на диске для сохранения снапшотов (RDB) и логов.
Первый шаг — обновление пакетного индекса и установленных компонентов:
- Откройте терминал с правами sudo.
- Выполните команду:
sudo apt update && sudo apt upgrade -y. - Установите базовые инструменты:
sudo apt install -y curl wget build-essential tcl.
TCL необходим для запуска тестов при сборке из исходников. Build-essential содержит gcc, make и другие утилиты, нужные для компиляции. Curl и wget используются для загрузки архивов.
Если вы планируете использовать Redis в сети, убедитесь, что брандмауэр UFW настроен корректно:
- Активируйте UFW:
sudo ufw enable. - Разрешите SSH:
sudo ufw allow OpenSSH. - Пока не открывайте порт 6379 — это будет сделано позже, при необходимости.
Установка Redis через APT
Самый простой способ установить Redis на Ubuntu 20.04 — использовать официальный репозиторий APT. Версия в репозитории может быть не самой свежей, но она протестирована и совместима с системой.
Чтобы установить Redis:
- Выполните:
sudo apt install redis-server. - APT автоматически установит Redis и зависимости.
- По завершении служба запустится автоматически.
Проверьте статус службы:
sudo systemctl status redis-server
Если всё в порядке, вы увидите строку active (running). По умолчанию Redis слушает только localhost (127.0.0.1), что безопасно для большинства сценариев.
Автозагрузка уже настроена через systemd. Однако конфигурация по умолчанию не защищена паролем и не ограничена по памяти. Эти параметры нужно настроить вручную.
Установка Redis из исходников
Если в репозитории Ubuntu доступна устаревшая версия Redis, а вам нужны новые функции (например, Redis Functions, ACL улучшены, улучшенный модуль Streams), установка из исходников — лучший выбор.
Шаги для установки:
- Перейдите на официальный сайт Redis: https://redis.io/download.
- Найдите ссылку на последнюю стабильную версию (на момент 2026 года — Redis 7.2).
- Скачайте архив:
wget https://download.redis.io/releases/redis-7.2.0.tar.gz. - Распакуйте:
tar xzf redis-7.2.0.tar.gz. - Перейдите в папку:
cd redis-7.2.0. - Соберите:
make. - Запустите тесты:
make test(необязательно, но рекомендуется). - Установите бинарные файлы:
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
Основная настройка 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. Основные команды:
- Старт:
sudo systemctl start redis-server(для APT) илиsudo systemctl start redis(для сборки). - Остановка:
sudo systemctl stop redis-server. - Перезапуск:
sudo systemctl restart redis-server. - Автозагрузка:
sudo systemctl enable redis-server. - Проверка статуса:
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, сервер работает.
Тестовые операции:
SET test "Hello from Redis"GET test— должно вернуть строку.EXISTS test— проверка наличия ключа.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 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 на Ubuntu 20.04 — процесс, который можно выполнить за считанные минуты, но требует внимания к безопасности и производительности. Независимо от выбранного метода установки — через APT или из исходников — ключевым этапом является правильная конфигурация. Ограничение доступа, установка пароля, настройка лимитов памяти и включение автозапуска через systemd — обязательные шаги для любого окружения.
- Всегда обновляйте систему перед установкой 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.
Мнения авторов могут не совпадать с позицией государственных органов или коммерческих организаций, упомянутых в материалах.