Короткий ответ
Кеш — промежуточное хранилище часто запрашиваемых данных с быстрым доступом, снижающее нагрузку на основной источник данных (БД, внешний API) и ускоряющее ответ.
Как это работает подробнее
При запросе сначала проверяется кеш; если данных нет (cache miss) — идём в основной источник и кладём результат в кеш; при повторном запросе (cache hit) данные берутся из кеша.
Пример кода
example.py
def get_product(product_id: int) -> dict:
cached = redis.get(f"product:{product_id}")
if cached:
return json.loads(cached)
product = db.fetch_product(product_id)
redis.set(f"product:{product_id}", json.dumps(product), ex=300)
return productЧто использовать на практике
- Практика. Типичные хранилища — Redis, Memcached, локальная память процесса; кешируют данные, которые часто читаются и редко меняются либо допускают небольшую задержку свежести.
Подводные камни
- Риск. Кешировать данные без плана их обновления/инвалидации; кешировать персональные/чувствительные данные без учёта ограничения доступа.