Вступить в клуб →
сложнаявопросКэш и Redis в Spring

Цена обновлена и кэш сброшен, но в кэше снова оказалась старая цена

Обновление цены: транзакция меняет строку в базе, @CacheEvict удаляет ключ. Под нагрузкой изредка в кэше остаётся старая цена на весь TTL (30 минут). В логах видно: одновременно с обновлением шёл запрос на чтение этого товара.

Какой сценарий к этому приводит?

  • Чтение взяло старую цену из базы до коммита и записало её в кэш после сброса
  • Redis не успел удалить ключ и вернул его повторно
  • @CacheEvict выполнился дважды и удалил новое значение
  • Транзакция обновления откатилась, но сообщение об этом потерялось

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

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

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

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