Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Теги: #Redis
Рейтинг: 81% · 42 голосов
SQL и NoSQL: PostgreSQL, MySQL, Redis, MongoDB, ClickHouse, ElasticSearch — проектирование схем, индексы, репликация и оптимизация запросов.
Ответить
Аватара пользователя
igor_ai42
Сообщения: 4
Зарегистрирован: Вс май 17, 2026 8:50 pm

Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение igor_ai42 »

Держим в одном Redis и сессии, и кэш горячих запросов. На пике память упёрлась в maxmemory, политика allkeys-lru — и Redis начал вышвыривать в том числе ключи сессий. Получили волну разлогинов и злой саппорт. Как правильно разруливать?
👍 ❤️ 🔥1 😄1 🤔
Аватара пользователя
filipp_proxy20
Сообщения: 11
Зарегистрирован: Вс май 10, 2026 10:39 pm

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение filipp_proxy20 »

Классическая ошибка: нельзя мешать сессии и кэш в одном инстансе с одной политикой. allkeys-lru вышибает что попало, включая твои сессии. Сессии должны жить там, где их не выселяют.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
elena_official
Сообщения: 13
Зарегистрирован: Чт май 14, 2026 10:22 pm

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение elena_official »

Два варианта. Либо разнести на два инстанса/базы: кэш — allkeys-lru, сессии — отдельный с noeviction или volatile-lru. Либо ставить TTL только на кэш и юзать volatile-lru, тогда выселяются ТОЛЬКО ключи с TTL, а вечные сессии не трогаются.
👍 ❤️ 🔥1 😄 🤔
Аватара пользователя
fluxnode7801
Сообщения: 16
Зарегистрирован: Пн май 11, 2026 9:35 am

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение fluxnode7801 »

О, про volatile-lru недопонимал. То есть если у сессий нет TTL, при volatile-lru их вообще не тронут? А если память кончится совсем?
👍 ❤️ 🔥2 😄 🤔
Аватара пользователя
goproxy1540
Сообщения: 1
Зарегистрирован: Вт май 19, 2026 5:28 am

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение goproxy1540 »

Тогда volatile-lru начнёт возвращать OOM на запись, потому что выселять нечего. Поэтому в проде сессиям тоже ставят TTL (скользящий, продлевают на активность), а не делают вечными. Вечные ключи в Redis — это бомба замедленного действия.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
ruslan_py40
Сообщения: 5
Зарегистрирован: Вс май 10, 2026 10:03 pm

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение ruslan_py40 »

Плюс мониторинг. Алерт на used_memory > 80% от maxmemory, и evicted_keys в графане. Если eviction вообще ненулевой на инстансе с сессиями — у тебя уже что-то горит, просто ты пока не заметил.
👍 ❤️ 🔥 😄1 🤔
Аватара пользователя
mark1066
Сообщения: 7
Зарегистрирован: Вс май 17, 2026 11:35 am

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение mark1066 »

И не забудьте что fork при RGB-снапшоте может временно сожрать ещё кучу памяти (copy-on-write). Видел как раз из-за bgsave прод улетал в OOM хотя по графикам было 75%. Оставляйте запас, не упирайтесь в потолок впритык.
👍 ❤️ 🔥 😄 🤔
Аватара пользователя
egor1580
Сообщения: 25
Зарегистрирован: Вс май 10, 2026 9:27 pm

Re: Redis на noeviction разлогинивает половину юзеров под нагрузкой. Что делаем не так?

Сообщение egor1580 »

Сделал: вынес сессии в отдельную базу с volatile-lru + скользящий TTL 30 мин, кэш оставил на allkeys-lru, накинул алерты на 80% и на evicted_keys. Спасибо, разлогины ушли.
👍3 ❤️1 🔥1 😄1 🤔
Ответить
Поделиться темой: ✈ Telegram VK

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость