Cache : accélérer sans servir des données périmées
Où le mettre
Dans le navigateur, dans le réseau de distribution, dans le serveur d'application et dans un magasin clé-valeur partagé. Chaque couche est plus rapide et plus difficile à invalider. La plupart des douleurs viennent de couches empilées sans politique unique pour trancher.
Trois stratégies
Expiration par délai. Simple et suffisante pour la plupart des cas. Choisissez un temps court pour les données qui changent et un logique pour les données stables.
Invalidation par événement. En écriture, supprimez la clé. Plus précis, et nécessite de se souvenir de chaque endroit qui écrit.
Rafraîchissement en arrière-plan. Servez une copie existante et rafraîchissez en parallèle — une expérience fluide, en échange d'une valeur légèrement périmée.
Les pièges
Une clé de cache qui n'inclut pas l'identité ou les autorisations de l'utilisateur — ainsi les données de l'un sont servies à l'autre. Une expiration massive au même moment qui fait tomber la base de données. Et un cache qui masque une requête lente au lieu de la corriger.
Pour aller plus loin
Mesurez le taux d'accès au cache et aussi le temps de réponse sans lui. Un cache qui cache un problème au lieu de le résoudre explosera au pire moment — quand il se vide et que le système est exposé à la charge totale contre laquelle il n'a jamais été testé.