Přeskočit na obsah
_CORE
Know-How

Caching Strategie

7 min čtení
CacheRedisPerformanceCDN

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šší.

CORE SYSTEMS tým

Praktické know-how z reálných projektů. Bez buzzwordů, s kódem.