Modèles de cache et expiration
Appliquez le modèle cache-aside et définissez des expirations.
Modèles de cache et expiration est une leçon C# Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage C# Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours C# Academy comprend 4 leçons au total.
Modèles de mise en cache
La manière dont vous lisez et écrivez dans un cache constitue un modèle. Le plus courant dans les applications web est le modèle de cache à la demande, dans lequel votre code gère le cache autour de la source de données.
Le modèle de cache à la demande
Le cache à la demande, ou chargement paresseux, fonctionne en trois étapes : vérifier le cache ; en cas d’absence, charger les données depuis la source et remplir le cache ; puis renvoyer la valeur. Le cache se remplit à la demande.
async Task<string> GetForecastAsync(string city)
{
string key = $"forecast:{city}";
string cached = await _cache.GetStringAsync(key);
if (cached is not null) return cached;
string fresh = await _api.LoadForecastAsync(city);
await _cache.SetStringAsync(key, fresh);
return fresh;
}Pourquoi l’expiration est essentielle
Les données mises en cache peuvent devenir obsolètes. L’expiration supprime automatiquement les entrées après un certain délai, afin que la lecture suivante recharge des données récentes, en équilibrant les performances et l’obsolescence.
Expiration absolue
L’expiration absolue supprime une entrée à un moment précis, indépendamment de son utilisation. Utilisez-la lorsque les données ne sont valides que pendant une période connue.
var options = new DistributedCacheEntryOptions
{
AbsoluteExpirationRelativeToNow = TimeSpan.FromMinutes(10)
};Expiration glissante
L’expiration glissante réinitialise le minuteur à chaque accès. Une entrée reste présente tant qu’elle est utilisée régulièrement, mais elle est supprimée après une période d’inactivité. Elle convient parfaitement aux données semblables à celles d’une session.
var options = new DistributedCacheEntryOptions
{
SlidingExpiration = TimeSpan.FromMinutes(5)
};Combiner les deux
Vous pouvez définir les deux : l’expiration glissante conserve les données fréquemment utilisées, tandis qu’une limite absolue garantit que l’entrée ne reste jamais présente au-delà d’une durée maximale, ce qui force son actualisation.
var options = new DistributedCacheEntryOptions
{
SlidingExpiration = TimeSpan.FromMinutes(5),
AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(1)
};Appliquer les options lors de l’écriture
Passez les options comme troisième argument à SetStringAsync (ou à SetAsync) afin que l’entrée porte sa propre stratégie d’expiration.
await _cache.SetStringAsync(key, fresh, options);Écriture directe et invalidation
Lorsque les données sources changent, supprimez ou mettez à jour le cache afin que les lectures ne renvoient pas de valeurs obsolètes. Le modèle de cache à la demande associe généralement les écritures à un appel à RemoveAsync sur la clé concernée.
await _repository.UpdateForecastAsync(city, value);
await _cache.RemoveAsync($"forecast:{city}");Éviter l’avalanche du cache
Si une clé très consultée expire, de nombreuses requêtes peuvent la recharger simultanément, provoquant une avalanche. Limitez ce phénomène à l’aide de verrous de courte durée, d’expirations légèrement aléatoires ou d’une actualisation en arrière-plan, afin qu’une seule requête reconstruise l’entrée.
Choisir les valeurs d’expiration
Choisissez les durées en fonction de la fréquence de modification des données et du degré d’obsolescence acceptable. Les données de référence tolèrent de longues durées de vie ; les données qui changent rapidement nécessitent des durées courtes ou une invalidation fondée sur les événements.
Le coût d’une absence
Chaque absence entraîne le chargement des données sources ; concevez donc vos clés et vos durées de vie pour maximiser le taux de réussite. Surveillez les taux de réussite et d’absence afin d’ajuster votre cache au fil du temps.
Vérification rapide
Testez les modèles de mise en cache et l’expiration.
Récapitulatif
Le modèle de cache à la demande vérifie le cache, charge les données en cas d’absence, puis le remplit. L’expiration absolue supprime l’entrée à un moment précis ; l’expiration glissante se réinitialise lors de chaque accès. Combinez-les avec DistributedCacheEntryOptions. Invalidez le cache lors des écritures avec RemoveAsync, protégez-vous contre les avalanches, et ajustez les durées de vie et les clés en fonction des habitudes d’accès et du degré d’obsolescence acceptable.
Questions Fréquemment Posées
La leçon « Modèles de cache et expiration » est-elle gratuite ?
Oui — le texte complet de « Modèles de cache et expiration » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours C# Academy, passe à CoddyKit PRO. Le cours C# Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Modèles de cache et expiration » ?
Appliquez le modèle cache-aside et définissez des expirations. Tu pratiques C# Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer C# Academy ?
Aucune expérience préalable n'est requise. C# Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Modèles de cache et expiration » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon C# Academy ?
Oui. Chaque leçon C# Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Abstraction IDistributedCache
- Se connecter à Redis
- Modèles de cache et expiration
- Mettre en cache des objets sérialisés