Sobes.tech
Back to questions
Junior — Middle
61

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

Companies where asked
Код Открытия

Answer from AI

sobes.tech AI

Механизм сброса или обновления данных в кэше при изменении источника информации обычно называется инвалидацией кэша. Когда данные в источнике меняются, кэш должен быть обновлён или очищен, чтобы не отдавать устаревшую информацию.

В Python это можно реализовать разными способами, например:

  • Использовать таймауты (время жизни кэша), после которого данные обновляются.
  • При изменении источника явно сбрасывать кэш (например, очищать словарь или использовать декораторы с возможностью сброса).

Пример с использованием декоратора functools.lru_cache и функции сброса кэша:

from functools import lru_cache

@lru_cache(maxsize=128)
def get_data(key):
    # Имитация получения данных из источника
    return expensive_data_fetch(key)

# При изменении источника вызываем:
get_data.cache_clear()  # Сброс кэша

Таким образом, после вызова cache_clear() следующий вызов get_data загрузит свежие данные.