I. FlushAll() Vider le cache
mClient.Store(StoreMode.Set, "key1", 1234L);
Console.Write(mClient.Get("key1")); // Récupère 1234 normalement
mClient.FlushAll();
Console.Write(mClient.Get("key1")); // Affiche nullLangage du code : JavaScript (javascript)
Points clés
FlushAll(): Supprime toutes les clés sur le serveur Memcached, utilisez‑le avec précaution !
- Interdit en production : efface l’intégralité du cache métier ;
- Se contente d’invalider les données existantes sans libérer la mémoire (nettoyage paresseux Memcached).
II. TryGet Récupération sûre du cache
object obj = null;
var isSuc = mClient.TryGet("key1", out obj );
// Clé présente : isSuc=true, obj =1234
isSuc = mClient.TryGet("key1", out obj );
// Clé absente : isSuc=false, obj reste nullLangage du code : JavaScript (javascript)
Comparaison Get() vs TryGet()
| Méthode | Caractéristiques | Cas d’usage |
|---|---|---|
mClient.Get(key) | Retourne null si la clé n’existe pas ; impossible de distinguer une valeur‑null stockée d’une clé absente | Lecture simple, sans besoin de vérifier l’existence de la clé |
mClient.TryGet(key, out obj) | Valeur booléenne pour l’existence de la clé ; différencie précisément les deux cas de null | À privilégier quand il faut détecter un hit cache |
La version générique est disponible : mClient.TryGet<T>(key, out T value)
Remarques importantes
FlushAll()est une instruction serveur ; en cluster il vide par défaut les données de tous les nœuds ;- Memcached ne persiste rien : tout est perdu au redémarrage du service ;
- Utilisez de préférence
TryGetpour vous protéger contre le cache‑penetration, éviter des requêtes massives vers la base de données.
Autres opérations
Previous: Stockage d’objet