При раздельном кешировании связанных данных можно получить несогласованный снимок: один ключ уже обновился, другой ещё содержит старое значение. Одинаковый TTL не обеспечивает атомарное обновление.
Если кэшируем несколько связанных данных (температура и новости), с какой проблемой можем столкнуться?
При раздельном кешировании связанных данных можно получить несогласованный снимок: один ключ уже обновился, другой ещё содержит старое значение. Одинаковый TTL не обеспечивает атомарное обновление.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
При раздельном кешировании связанных данных можно получить несогласованный снимок: один ключ уже обновился, другой ещё содержит старое значение. Одинаковый TTL не обеспечивает атомарное обновление.
Сначала определите, действительно ли температура и новости должны соответствовать одному моменту или версии. Если независимы, разная свежесть может быть нормальной и требует лишь отображения времени обновления.
Для согласованного набора можно сохранять единый объект или версионированные ключи и атомарно переключать ссылку на готовую версию. При чтении нескольких ключей полезно проверять generation. Нужны правила для частично загруженной версии и сбоя обновления, а не только общий срок хранения.