---
title: Cache
created: 2026-06-06
updated: 2026-06-06
type: concept
tags: [tech, architecture, performance]
confidence: high
contested: false
sources: [synthesized]
---
# ⚡ Cache

## Définition Courte
Stockage **temporaire** de données coûteuses à recalculer ou à récupérer, pour servir les requêtes suivantes **beaucoup plus vite**.

## Explication Détaillée
**Couches de cache** (de la plus proche au plus loin) :
1. **CPU Cache** (L1, L2, L3) : nanosecondes.
2. **RAM Cache** (Redis, Memcached) : microsecondes.
3. **Disk Cache** (SSD) : millisecondes.
4. **CDN Edge** (Cloudflare, Fastly) : dizaine de ms.
5. **HTTP Cache** (browser) : réutilisé localement.

**Patterns** :
- **Cache-Aside** : l'app lit le cache, sinon lit la source et remplit.
- **Read-Through** : le cache est transparent, lit la source si besoin.
- **Write-Through** : l'écriture passe par le cache puis la source.
- **Write-Behind** : écriture async (risque de perte).
- **Cache Stampede Prevention** : éviter que 1000 requêtes régénèrent la même clé en parallèle.

**Invalidation** : le plus dur en cache. TTL, événement-based, ou manuelle.

## Cas d'Usage
- Sessions utilisateurs (Redis).
- Réponses API coûteuses (résultats LLM, RAG).
- Assets statiques (images, JS via CDN).
- Requêtes DB lourdes.
- Résultats de pagination.

## Outils Liés
- **Redis**, **Memcached**, **KeyDB** (in-memory).
- **Varnish**, **NGINX** (HTTP cache).
- **Cloudflare**, **Fastly** (CDN).
- **Stale-While-Revalidate** (SWR).

## Pages Liées
- [[load-balancing]]
- [[api-gateway]]
- [[comparatif-stockage]]
- [[observabilite]]

## Questions Ouvertes
- Le cache L1/L2 de CPU est-il encore pertinent à optimiser en 2025 ?
- Comment gérer le cache distribué sans point unique de défaillance ?
