Cache-aside (Lazy Loading)

DevOps 🟡 Mid

Definition

Stratégie où l'application vérifie le cache d'abord, puis lit la DB en cas de miss et remplit le cache. Le cache ne se remplit qu'à la demande.

Analogie

Tu cherches dans ton tiroir (cache), si ce n'est pas là tu vas au grenier (DB) et tu ranges une copie dans le tiroir.

Exemple de code

async function getUser(id) {
  let user = await cache.get(`user:${id}`);
  if (!user) {
    user = await db.findUser(id);
    await cache.set(`user:${id}`, user, 'EX', 300);
  }
  return user;
}

Cas d'usage

Pattern le plus courant pour accélérer les lectures fréquentes sans charger la DB.

Anti-pattern

Pas de TTL : les données en cache deviennent stales indéfiniment.

Termes lies

#devops#caching#interview