MAATRIX / Блог / Как установить и настроить Redis на VPS

Как установить и настроить Redis на VPS

Как установить и настроить Redis на VPS

MAATRIX

Redis на VPS — это быстрое хранилище «ключ-значение» в оперативной памяти, которое ускоряет сайты и приложения в разы: кэш, сессии, очереди задач, счётчики и лидерборды. Развернуть его на своём сервере просто, но у Redis есть репутация «дырявого по умолчанию» — открытый в интернет без пароля инстанс взламывают за минуты. Ниже — правильный путь: установка, надёжная защита, ограничение памяти, персистентность и запуск как системной службы, чтобы Redis работал быстро и безопасно.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Зачем Redis и сколько ресурсов нужно

Redis держит данные в памяти, поэтому его главный ресурс — RAM, а не диск или процессор. Объём памяти подбирайте под то, что собираетесь хранить: для кэша и сессий небольшого сайта хватает 512 МБ – 1 ГБ, для крупного проекта с очередями и большими наборами данных берите несколько гигабайт. Процессор Redis почти не нагружает — он однопоточный по своей природе и обрабатывает команды очень эффективно.

Локация зависит от того, что Redis обслуживает. Обычно он живёт рядом с приложением, поэтому берите ту же локацию, что и у основного бэкенда: для российской аудитории — RU, для зарубежного сервиса — US или UK. Задержка между приложением и Redis критична, ведь к нему идут тысячи мелких запросов в секунду, поэтому держать их в одной сети или на одном сервере — правильная практика.

Примеры даны для Ubuntu 24.04 LTS, работаем под пользователем с sudo. Redis настолько лёгкий, что часто соседствует с базой и приложением на одном VPS — это нормально, если хватает памяти.

Установка Redis

В штатном репозитории Ubuntu 24.04 лежит актуальная версия Redis, и для большинства задач её достаточно:

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

Проверьте, что сервер отвечает:

redis-cli ping

Ответ PONG означает, что Redis запущен и принимает команды. Если нужна самая свежая версия напрямую от разработчиков, подключите официальный репозиторий Redis с packages.redis.io — там всегда последний стабильный релиз с оперативными обновлениями. Для типового кэша и сессий версия из репозитория Ubuntu полностью подходит и получает обновления вместе с системой, так что усложнять без необходимости не нужно.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под Redis

Защита: пароль и protected-mode

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

sudo nano /etc/redis/redis.conf

Убедитесь, что Redis привязан к localhost, и задайте пароль:

bind 127.0.0.1 -::1
protected-mode yes
requirepass ОченьДлинный_Случайный_Пароль_2026

Пароль должен быть длинным и случайным — Redis обрабатывает команды так быстро, что перебор коротких паролей занимает секунды. После правки перезапустите службу: sudo systemctl restart redis-server. Теперь клиент обязан авторизоваться командой AUTH пароль, а redis-cli подключается так: redis-cli -a пароль. Если Redis и приложение на одном сервере, оставьте привязку к localhost — это самая безопасная конфигурация, и внешний доступ вообще не понадобится.

Удалённый доступ, если он нужен

Когда приложение живёт на другом сервере, доступ к Redis всё равно не стоит открывать напрямую в интернет. Лучшее решение — приватная сеть или SSH-туннель между машинами. Если всё же нужен сетевой доступ, привяжите Redis к внутреннему адресу и обязательно закройте порт фаерволом для всех, кроме доверенного IP:

bind 127.0.0.1 10.0.0.5
sudo ufw allow from 10.0.0.20 to any port 6379 proto tcp

Никогда не оставляйте bind 0.0.0.0 с доступом из интернета — это классическая уязвимость, которую массово сканируют и эксплуатируют боты. Даже с паролем открытый в мир Redis остаётся мишенью для атак на переполнение и утечки. Комбинация «привязка к приватному адресу плюс фаервол плюс пароль» закрывает практически все реальные угрозы, а SSH-туннель делает открытый порт вовсе ненужным.

Ограничение памяти и вытеснение

Redis хранит данные в RAM, и если не задать лимит, он способен съесть всю память сервера и уронить остальные службы. Обязательно установите максимальный объём и политику вытеснения:

maxmemory 1gb
maxmemory-policy allkeys-lru

maxmemory задаёт потолок, после которого Redis начинает освобождать место. Политика allkeys-lru вытесняет наименее недавно использованные ключи — идеальный выбор, когда Redis работает как кэш: старые данные уходят, свежие остаются. Если же Redis хранит важные данные, которые нельзя терять (например, очереди), выбирайте noeviction — тогда при заполнении он вернёт ошибку вместо удаления, и вы вовремя заметите нехватку памяти. Подбирайте политику под роль: кэш и постоянное хранилище требуют разного поведения.

Персистентность: RDB и AOF

По умолчанию Redis периодически сохраняет снимок данных на диск (RDB), чтобы пережить перезапуск. Для кэша этого достаточно — потеря нескольких минут данных не страшна. Для более ценных данных включите журнал операций AOF, который пишет каждое изменение и восстанавливает состояние точнее:

appendonly yes
appendfsync everysec

Режим everysec — золотая середина: данные сбрасываются на диск раз в секунду, что даёт хорошую надёжность почти без потери скорости. Комбинация RDB плюс AOF даёт и быстрый старт из снимка, и минимальную потерю данных из журнала. Помните: персистентность требует места на диске и немного ресурсов, поэтому для чистого кэша её часто отключают ради максимальной скорости, а для хранилища очередей включают обязательно. Решение зависит от того, что именно вы держите в Redis.

Проверка и эксплуатация

После настройки убедитесь, что всё работает как задумано:

redis-cli -a пароль INFO memory
redis-cli -a пароль CONFIG GET maxmemory

Команда INFO показывает использование памяти, число подключений и статистику попаданий в кэш — по ней видно, эффективно ли Redis используется. Следите за параметром used_memory относительно maxmemory и за долей вытеснений: если ключи вытесняются слишком часто, кэшу мало памяти. Полезная метрика — соотношение keyspace_hits и keyspace_misses: высокая доля попаданий означает, что кэш реально экономит обращения к базе, а низкая — что данные вытесняются раньше, чем успевают пригодиться, и памяти стоит добавить.

Отдельно стоит настроить запуск как надёжной системной службы. Пакет из репозитория уже ставит юнит systemd, но проверьте, что в конфиге стоит supervised systemd — тогда Redis корректно сообщает systemd о своём состоянии, и служба перезапускается автоматически после сбоя или перезагрузки сервера. Без этого Redis может считаться «запущенным» ещё до того, как реально готов принимать команды, и приложение поймает ошибку подключения на старте. Чтобы Redis работал стабильно и быстро, нужен VPS с гарантированной оперативной памятью и хорошей сетью. В MAATRIX можно арендовать сервер под Redis в России, США или Великобритании и оплатить картой РФ, по СБП, криптой или токеном MAAT — иностранная карта не нужна.

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

Арендовать VPS под Redis

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

Redis обязательно нужен пароль?

Да, всегда задавайте requirepass, даже на localhost. Это дешёвая страховка на случай, если порт случайно окажется доступен извне из-за ошибки в конфиге фаервола.

Сколько памяти выделить Redis?

Под кэш и сессии небольшого сайта хватает 512 МБ – 1 ГБ, под очереди и большие наборы — несколько гигабайт. Обязательно ставьте maxmemory, чтобы Redis не съел всю RAM сервера.

Нужна ли персистентность для кэша?

Обычно нет — для чистого кэша достаточно RDB или даже её отключения ради скорости. Для очередей и важных данных включайте AOF в режиме everysec.

Как безопасно подключить Redis с другого сервера?

Через приватную сеть или SSH-туннель, а не открытый порт в интернет. При сетевом доступе привяжите Redis к внутреннему адресу, закройте порт фаерволом и оставьте пароль.

Нужны сами нейросети для контента?

Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.