Как следует кэшировать цены товаров и какой риск возникает при одновременном cache miss?

Цены кешируют с ограниченным TTL и инвалидируют при изменении, а при оформлении заказа проверяют актуальные условия. Одновременный cache miss может вызвать лавину одинаковых запросов к БД.

Короткий ответ

Что ответить на собеседовании

Цены кешируют с ограниченным TTL и инвалидируют при изменении, а при оформлении заказа проверяют актуальные условия. Одновременный cache miss может вызвать лавину одинаковых запросов к БД.

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

Ответ с пояснениями

Цены кешируют с ограниченным TTL и инвалидируют при изменении, а при оформлении заказа проверяют актуальные условия. Одновременный cache miss может вызвать лавину одинаковых запросов к БД.

Ключ должен учитывать товар и все факторы цены: валюту, регион, вариант и, если нужно, сегмент покупателя. Нельзя отдавать персональную цену по общему ключу.

Против cache stampede используют объединение запросов на один ключ, распределённую координацию пересчёта и разброс TTL. Устаревшую цену можно показать лишь в рамках явно допустимой политики; при оплате фиксируют проверенный ценовой snapshot. Для частых обновлений применяют события инвалидирования и защиту от записи старой версии поверх новой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее