Этап 6 из 15 · ≈ 4 ч

Кэширование

Основа с Junior

Redis, стратегии кэширования, инвалидация, лавина промахов и горячие ключи.

Что важно знать

  • Cache-aside: прочитали из кэша, промах — из базы и положили в кэш. Самая частая схема.
  • Инвалидация: TTL, удаление при изменении, версии ключей.
  • Лавина промахов: ключ истёк — тысячи запросов в базу; защита — блокировка на пересчёт, случайный TTL, фоновое обновление.
  • Горячий ключ перегружает один узел — локальный кэш, реплики ключа.
  • Вытеснение: LRU, LFU и лимит памяти.
  • Кэш — не источник правды: его потеря не должна ломать систему.

Критерии освоения

Junior ≈ 4 ч

  • Кэширует результат запроса в Redis с временем жизни

Практика. Добавить кэш карточки товара в Redis и замерить время ответа до и после.

Middle ≈ 8 ч

  • Выбирает стратегию — cache-aside, write-through — и способ инвалидации
  • Защищает базу от лавины промахов и обрабатывает горячие ключи
  • Измеряет долю попаданий и пользу кэша

Практика. Реализовать cache-aside с защитой от одновременных промахов и инвалидацией при изменении цены.

Senior ≈ 4 ч

  • Проектирует многоуровневое кэширование (локальный, распределённый, CDN) с требованиями к свежести

Практика. Спроектировать кэширование каталога с требованием «цена обновляется в течение минуты» и оценить нагрузку на базу.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Зачем ключам в кэше задают TTL?Junior

TTL ограничивает время жизни ключа: память освобождается, а расхождение с источником ограничено сверху, даже если инвалидацию пропустили.

Полный разбор
Как работает паттерн cache-aside при чтении?Middle

Cache-aside: приложение читает из кэша; при промахе идёт в базу, кладёт результат в кэш с TTL и возвращает. Источник истины — база.

Полный разбор
Что обязательно при реализации распределённой блокировки на Redis?Senior

SET lock:x <уникальный токен> NX PX 30000 — захват с TTL (чтобы упавший клиент не держал вечно); снятие — Lua-скриптом только своего токена.

Полный разбор
Зачем нужно кэширование и какие у него главные риски?Junior

Кэш хранит результат дорогой операции ближе к потребителю: меньше задержка и нагрузка на источник. Главные риски — устаревшие данные и зависимость от кэша.

Полный разбор
Что такое cache stampede?Middle

Давка — популярный ключ истёк или кэш перезапустился, и множество запросов одновременно идут в базу за одним значением.

Полный разбор
Какие проблемы бывают с Redis под высокой нагрузкой?Senior

Команды Redis выполняются в одном потоке — одна медленная команда (KEYS, большой HGETALL, долгий Lua) задерживает всех. Отсюда главные правила: не трогать большие структуры целиком, избегать O(N) команд, держать ключи маленькими.

Полный разбор
Что делает CDN и когда он нужен?Junior

CDN — сеть серверов по всему миру (или стране), которые кэшируют копии ваших файлов и отдают их пользователю с ближайшего узла. Сайт грузится быстрее (меньше расстояние и задержка), основной сервер разгружается, а всплески трафика и часть атак поглощает CDN…

Полный разбор
Что такое компромисс между временем и памятью?Junior

Часто можно ускорить алгоритм, потратив больше памяти — сохранить промежуточные результаты, индекс или предвычисленную таблицу — и наоборот.

Полный разбор
Как оценить, насколько кэш разгружает базу, и что будет, если он упадёт?Middle

Нагрузка на базу = поток × доля промахов. Рост hit ratio с 90% до 99% снижает нагрузку на базу в 10 раз. Обратная сторона: если база рассчитана только на промахи, падение кэша — это авария.

Полный разбор
Как устроен LRU-кэш и какие ещё бывают политики вытеснения?Middle

LRU выбрасывает то, к чему дольше всего не обращались. O(1) на операцию даёт пара хеш-таблица + двусвязный список: таблица находит узел, список хранит порядок использования.

Полный разбор

Разборы темы

← Вся карта «Backend-разработчик»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования