Вступить в клуб →
лёгкаявопросКэш, очереди и надёжность сервисов

Пользователь сменил имя, а в профиле два дня показывается старое

Профиль читается по схеме cache-aside: сначала смотрим в Redis по ключу user:42:profile, при промахе идём в базу и кладём результат в кэш.

TTL у ключа не задан. Обработчик изменения профиля пишет новые данные в базу и на этом заканчивается.

Почему пользователь второй день видит старое имя?

  • Ключ живёт бессрочно и никем не сбрасывается: нужны TTL и инвалидация при обновлении
  • Redis сам вытесняет ключ, как только строка в базе по этому идентификатору изменилась
  • Порядок чтения неверный: сначала нужно читать базу, а в кэш заглядывать только при ошибке
  • Проблема в сериализации: словарь нужно хранить не строкой, а в структуре типа hash

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела