Как установить Redis на Ubuntu 24
Установить Redis на Ubuntu можно из репозитория самой Ubuntu (в 24.04 это Redis 7.0, в 22.04 — 6.0) или взять свежий выпуск из официального репозитория Redis. Redis доверяет любому клиенту, который до него добрался, поэтому открытым в интернет его оставлять нельзя. Ниже — как его запускает systemd, как добавить пароль или пользователя ACL и как пустить второй сервер, ничего не выставляя наружу.
Как установить Redis на Ubuntu через apt
Пакет redis-server ставит сервер и redis-cli и сразу запускает службу.
sudo apt update
sudo apt install -y redis-server
redis-server --version
redis-cli pingЕсли сервер работает, на ping он ответит PONG. Настройки лежат в /etc/redis/redis.conf, данные — в /var/lib/redis/, журнал — в /var/log/redis/redis-server.log.
Как проверить, что Redis запускает systemd
В старых инструкциях советуют поменять в redis.conf строку supervised no на supervised systemd. С пакетом Ubuntu это не нужно: его служба уже запускает Redis с --supervised systemd --daemonize no, и эти параметры сильнее файла. Убедиться можно так:
systemctl status redis-server --no-pager
systemctl cat redis-serverВ состоянии будет Active: active (running), а в описании службы — строка ExecStart=/usr/bin/redis-server /etc/redis/redis.conf --supervised systemd --daemonize no. Служба включена, так что Redis поднимется и после перезагрузки. Правки в redis.conf применяются командой:
sudo systemctl restart redis-serverКак задать пароль: requirepass или пользователь ACL
Сразу после установки любая программа на сервере подключается к Redis без пароля. Самое простое — requirepass, один пароль для всех клиентов. Сделайте его длинным и случайным, например такой командой:
openssl rand -hex 32Найдите в файле настроек закомментированную строку # requirepass foobared и впишите на её место свой пароль:
requirepass choose-a-long-random-passwordsudo systemctl restart redis-server
redis-cli --askpass pingredis-cli спросит пароль и ответит PONG. Без пароля команды вернут NOAUTH Authentication required. Начиная с Redis 6 можно ещё завести каждому приложению своего пользователя со своими правами (ACL). Эта строка в том же файле создаёт пользователя app, которому доступны все ключи, но не опасные команды вроде FLUSHALL или CONFIG:
user app on >choose-another-long-password ~* &* +@all -@dangerousПосле перезапуска войдите под этим пользователем:
redis-cli --user app --askpassПриложение тогда подключается с именем пользователя и паролем.
Как осторожно пустить другой сервер
Redis из Ubuntu слушает только 127.0.0.1 и ::1. Это правильно, когда приложение работает на том же сервере. Если на другом, соедините их частной сетью, но не через открытый интернет: трафик Redis, включая пароль, не шифруется. Частный адрес этого сервера покажет команда:
ip -4 addrДопишите этот адрес в строку bind:
bind 127.0.0.1 -::1 10.0.0.5Сначала задайте пароль, как выше, потом перезапустите Redis и откройте порт 6379 только для сервера приложения. Вместо 10.0.0.6 подставьте его адрес.
sudo systemctl restart redis-server
sudo ufw allow from 10.0.0.6 to any port 6379 proto tcpСтроку protected-mode yes не трогайте. Правило UFW защищает, только пока UFW включён, так что проверьте его командой: sudo ufw status Прежде чем включать UFW по SSH, разрешите SSH командой: sudo ufw allow OpenSSH
Как поставить свежий Redis с packages.redis.io
Ubuntu держит одну версию Redis, пока жив выпуск системы. У проекта Redis есть свой репозиторий apt с актуальными выпусками. Команды ниже — с его страницы установки: они добавляют ключ подписи и репозиторий, а затем ставят Redis оттуда.
sudo apt-get install lsb-release curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
sudo chmod 644 /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt-get update
sudo apt-get install redisСлужба называется так же, redis-server, и запускается сама. Если нет — выполните:
sudo systemctl enable redis-server
sudo systemctl start redis-serverПроверьте версию и какой файл настроек читает служба:
redis-server --version
systemctl cat redis-serverЕсли ставить поверх Redis из Ubuntu, apt спросит, оставить ли ваш /etc/redis/redis.conf. Если оставить, новая служба падает с Failed with result 'protocol': её unit больше не передаёт --supervised systemd. Пропишите в файле эти две строки и перезапустите Redis:
daemonize no
supervised systemdsudo systemctl restart redis-serverЕсли Redis не запускается или не отвечает
Could not connect to Redis at 127.0.0.1:6379: Connection refused— сервер не запущен. Обычно это опечатка вredis.conf. Причину покажет журнал службы:sudo journalctl -u redis-server -n 50Её видно и в журнале Redis:sudo tail -n 50 /var/log/redis/redis-server.logNOAUTH Authentication required.— задан пароль. Сначала отправьтеAUTHс паролем или подключайтесь командой:redis-cli --askpassWRONGPASS invalid username-password pair or user is disabled.— неверный пароль или у пользователя ACL нетon.DENIED Redis is running in protected mode— клиент с другой машины добрался до Redis без пароля. Задайте пароль и адрес вbind, как выше, а защищённый режим не выключайте.WARNING Memory overcommit must be enabled!в журнале — фоновое сохранение может сорваться, когда память на исходе. Документация Redis советует дописатьvm.overcommit_memory = 1в/etc/sysctl.confи применить сразу командой:sudo sysctl vm.overcommit_memory=1
Если вы работаете и на Mac

Сборка мусора в MacWashing находит кэш всех знакомых ей программ, в том числе спрятанный внутри их данных, а ещё журналы, мусор Xcode и остатки удалённых программ. Она показывает, сколько места занимает каждая находка, и очищает всё за один раз. Всё спорное остаётся без галочки, пока вы не решите.
Бесплатная пробная версия · macOS 14 и новее
Вопросы и ответы
Как установить Redis на Ubuntu?
Поставьте пакет redis-server через apt и проверьте, что сервер отвечает PONG, как в первом разделе. На Ubuntu 24.04 встанет Redis 7.0, на 22.04 — 6.0.
Можно ли открыть Redis в интернет?
Нет. В документации Redis сказано, что он рассчитан на доверенных клиентов в доверенной сети. Держите его на 127.0.0.1 или в частной сети, с паролем и правилом брандмауэра для каждого сервера приложения.
Где Redis хранит данные?
В /var/lib/redis/, по умолчанию в снимке dump.rdb. Всё лежит в памяти, а снимок Redis сохраняет время от времени — как задано строками save в redis.conf.