55 lines
1.7 KiB
Markdown
55 lines
1.7 KiB
Markdown
---
|
|
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 ?
|