Практическое задание

Эта задача — шаг 2 курса «Redis в проде»

Кто съел память Redis

легко~5 мин

Память Redis растёт, и надо найти виновника. В базе полторы тысячи ключей разных типов.

Найди ключ, который занимает больше всего памяти (в байтах, а не по числу элементов), и запиши его имя в /root/bigkey.txt.

Что потренируешь:
  • redis
  • --bigkeys
  • --memkeys
  • MEMORY USAGE
  • диагностика памяти

Разбор темы

Один «большой ключ» в Redis — частая причина проблем в проде: он съедает память, а операции над ним (DEL, HGETALL, миграция в кластере) блокируют однопоточный сервер надолго. Найти такие ключи помогает redis-cli --bigkeys: он проходит базу через SCAN (не блокируя сервер, как KEYS *) и показывает самый крупный ключ каждого типа — но по числу элементов или длине строки. --memkeys делает то же по реальному объёму памяти через MEMORY USAGE, учитывая накладные расходы структур. Это разные метрики: список из 50 тысяч крошечных элементов в компактной кодировке может весить меньше хеша из нескольких тысяч полей.

Что проверяется

  1. найден самый тяжёлый ключ

Как это выглядит