MAATRIX / Блог / VPS для Redis: кэш и хранилище в памяти

VPS для Redis: кэш и хранилище в памяти

VPS для Redis: кэш, персистентность и безопасность
Блог MAATRIX · 2026-07-07

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

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

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

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

Что такое Redis и зачем он нужен

Redis держит данные в оперативной памяти, поэтому операции измеряются микросекундами. Это не замена основной СУБД, а слой поверх неё: кэш тяжёлых запросов, хранилище сессий, счётчики, rate-limiter, брокер очередей через списки и Pub/Sub.

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

  • В памяти — микросекундные задержки, десятки тысяч операций в секунду.
  • Структуры данных — списки, множества, хеши, sorted sets, стримы.
  • Кэш и брокер — снимает нагрузку с основной БД.

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

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

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

Установка Redis

Redis есть в репозиториях Ubuntu, но свежую версию лучше брать из официального. Ниже — установка из репозитория Redis.

sudo apt update && sudo apt install -y curl gpg
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /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 update && sudo apt install -y redis
sudo systemctl enable --now redis-server

Проверим, что сервер отвечает:

redis-cli ping   # должно вернуть PONG

Обязательная защита

Открытый Redis без пароля — частая цель атак: через него получают доступ к серверу. Задайте пароль и убедитесь, что сервер слушает только localhost (или доверенную подсеть за файерволом).

# /etc/redis/redis.conf
bind 127.0.0.1 -::1
protected-mode yes
requirepass strong_redis_password_here
# по желанию переименуйте опасные команды
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_9x1"
sudo systemctl restart redis-server
redis-cli -a strong_redis_password_here ping

Отключение или переименование команд вроде FLUSHALL и CONFIG снижает урон при утечке пароля.

Память и политики вытеснения

Redis хранит всё в RAM, поэтому обязательно ограничьте потребление, иначе при заполнении памяти сервер уйдёт в swap или OOM. Для кэша задают политику вытеснения — какие ключи удалять при нехватке места.

# /etc/redis/redis.conf
maxmemory 1gb
maxmemory-policy allkeys-lru

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

redis-cli -a pass INFO memory
redis-cli -a pass INFO stats | grep keyspace

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

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

# /etc/redis/redis.conf
# снапшоты: сохранить, если за 300с было 100 изменений
save 300 100
# журнал операций
appendonly yes
appendfsync everysec

Режим appendfsync everysec — золотая середина: fsync раз в секунду, при сбое теряется максимум секунда данных. На NVMe эта запись почти не влияет на производительность. Ручной снапшот делается командой:

redis-cli -a pass BGSAVE

Сценарии, железо и ошибки

Redis упирается в память и в скорость сети, а при включённой персистентности — в диск (fork для RDB и fsync для AOF). AMD EPYC + NVMe у MAATRIX дают быструю запись журнала AOF без просадок и высокую производительность на ядро, что важно для однопоточной модели Redis. Берите тариф с достаточной RAM под ваш набор ключей плюс запас на BGSAVE-форк. Локации UK/США/РФ и оплата картой РФ, СБП, криптой или токеном MAAT упрощают запуск за рубежом.

  • Без requirepass и bind — Redis открыт наружу, типовой вектор взлома сервера.
  • Без maxmemory — при заполнении RAM сервер уходит в swap и встаёт.
  • Неверная политика вытеснения — noeviction на кэше возвращает ошибки записи при заполнении.
  • Мало RAM под форк — BGSAVE клонирует процесс, нужен запас памяти.

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

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

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

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

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

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

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

Redis теряет данные при перезагрузке?

Без персистентности — да, память очищается. Включите RDB-снапшоты и/или AOF, чтобы восстанавливать состояние при старте. Для чистого кэша потеря данных не страшна.

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

Объём вашего набора ключей плюс запас 20-30% на фрагментацию и форк при BGSAVE. Всегда задавайте maxmemory ниже физической RAM.

Можно ли использовать Redis как основную БД?

Обычно нет — это дополнение к основной СУБД для скорости. Но с включённым AOF и репликацией Redis применяют и как первичное хранилище для подходящих данных.