Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Caching Strategie

01. 01. 2024 1 min čtení intermediate

Cache je nejefektivnější způsob zrychlení aplikace. Ale špatná cache invalidace je jeden z nejtěžších problémů v CS.

Strategie

  • Cache-aside: Aplikace čte/zapisuje cache explicitně
  • Write-through: Zápis do cache i DB současně
  • Write-behind: Zápis do cache, async do DB
  • Read-through: Cache automaticky načte z DB

HTTP Cache headers

Statické assety — dlouhý cache

Cache-Control: public, max-age=31536000, immutable

API response — krátký cache

Cache-Control: private, max-age=60

Validace s ETag

ETag: “abc123” If-None-Match: “abc123” # 304 Not Modified

Cache-aside pattern

async def get_product(product_id):

1. Check cache

cached = await redis.get(f”product:{product_id}”) if cached: return json.loads(cached)

2. Cache miss — fetch from DB

product = await db.products.find(product_id)

3. Store in cache

await redis.setex(f”product:{product_id}”, 3600, json.dumps(product)) return product

Klíčový takeaway

Cache-aside pro většinu use cases. HTTP cache headers pro CDN. Invalidace je těžší než se zdá — TTL je nejjednodušší.

cacheredisperformancecdn