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