TGViewer
этогик // DevOps, Infrastructure, Productivity этогик // DevOps, Infrastructure, Productivity @etogeek · 4.38K subscribers
Post #355 4.58K
Redis - это такая key-value база данных, часто используется для кэша, часто - как очередь для Celery, либо для других целей. Ее особенность в том, что все данные она хранит в оперативной памяти, из-за чего очень быстро работает. Если данные нужны, то в случае перезагрузок/перезапусков или просто по времени Redis может сохранять слепок на диск.

В одном внутреннем сервисе Redis стал кушать ну слишком много памяти. Даже виртуалку повесил по OOM-у.

Полез разбираться. Оказалось, что в одной базе лежит неприлично больше количество ключей - около 2 млн. Посмотрел, что в ней хранится - токены сессий для API. Хм, а у них в коде MAX_AGE стоит 180 дней всего.

Спускаюсь ниже по коду, там где для записи указывается TTL:
expire=int(datetime.utcnow().timestamp()) + SESSION_MAX_AGE


Ну вроде хорошо, берем текущий таймштамп и плюсуем 180 дней. Так и записываем.

Пошел в документацию библиотечки:
expire(key, timeout)
Set a timeout on key


Таймаут… не таймштамп.. получается что о_о

Каждая запись создавалась с TTL 1780743477 секунд, что чуть больше 56 лет…

Фикс выкатил. А Claude тем временем помог сделать скриптик, который пробежит по всем записям в Redis с TTL > 1 года и удалит старые. Скрипт запустил в фоне, крутится неспеша, память освобождается, все довольны.
  • 🔥 49
  • 👍 17
  • 😁 10
  • 👏 2
  • ❤ 1
More from @etogeek
  1. Sep 4, 2026Баланс в EdTech Подписан на канал Mischa van den Burg и там недавно вышло видео, где автор…
  2. Aug 31, 2026Чтобы немного подвести итог серии постов про бекапы (раз и два), расскажу как я ими управл…
  3. Aug 25, 2026Мониторинг бекапов В прошлый раз я говорил про PITR-бекапы для PostgreSQL, теперь хочу нем…
  4. Aug 21, 2026Про бекапы. Хочу немного поделиться своим опытом в нескольких постах. Это больше информаци…
  5. Aug 13, 2026Когда я преподавал в Практикуме (был такой период, да. еще и видео снимал), студенты часто…
  6. Jun 25, 2026Некоторое время назад столкнулся с тем, что какой-то сервис отправил мне огромное количест…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →