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

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

Блог MAATRIX · 2026-07-07

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

Что такое 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\ncurl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg\necho "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | \\\n  sudo tee /etc/apt/sources.list.d/redis.list\nsudo apt update && sudo apt install -y redis\nsudo systemctl enable --now redis-server
', 'Проверим, что сервер отвечает:', '
redis-cli ping   # должно вернуть PONG
']

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

['Открытый Redis без пароля — частая цель атак: через него получают доступ к серверу. Задайте пароль и убедитесь, что сервер слушает только localhost (или доверенную подсеть за файерволом).', '
# /etc/redis/redis.conf\nbind 127.0.0.1 -::1\nprotected-mode yes\nrequirepass strong_redis_password_here\n# по желанию переименуйте опасные команды\nrename-command FLUSHALL ""\nrename-command CONFIG "CONFIG_9x1"
', '
sudo systemctl restart redis-server\nredis-cli -a strong_redis_password_here ping
', 'Отключение или переименование команд вроде FLUSHALL и CONFIG снижает урон при утечке пароля.']

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

['Redis хранит всё в RAM, поэтому обязательно ограничьте потребление, иначе при заполнении памяти сервер уйдёт в swap или OOM. Для кэша задают политику вытеснения — какие ключи удалять при нехватке места.', '
# /etc/redis/redis.conf\nmaxmemory 1gb\nmaxmemory-policy allkeys-lru
', 'Политика allkeys-lru вытесняет наименее недавно используемые ключи — идеальна для чистого кэша. Если часть ключей должна жить вечно (сессии), используйте volatile-lru: тогда вытесняются только ключи с выставленным TTL. Проверить статистику памяти и попаданий в кэш:', '
redis-cli -a pass INFO memory\nredis-cli -a pass INFO stats | grep keyspace
']

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

['По умолчанию Redis делает снапшоты RDB — периодический дамп всей базы на диск. Для большей надёжности включают AOF — журнал всех операций, который переигрывается при старте. Для чистого кэша персистентность можно и выключить.', '
# /etc/redis/redis.conf\n# снапшоты: сохранить, если за 300с было 100 изменений\nsave 300 100\n# журнал операций\nappendonly yes\nappendfsync 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

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

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

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

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

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

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

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