I. FlushAll() Limpiar caché
mClient.Store(StoreMode.Set, "key1", 1234L);
Console.Write(mClient.Get("key1")); // Obtiene 1234 correctamente
mClient.FlushAll();
Console.Write(mClient.Get("key1")); // Devuelve nullLenguaje del código: JavaScript (javascript)
Notas importantes
FlushAll(): Borra todas las claves del servidor Memcached, úsalo con mucha precaución!
- No invocar en entorno de producción; elimina todo el caché de negocio;
- Solo invalida registros existentes sin liberar memoria (limpieza perezosa de Memcached).
II. TryGet Obtención segura de caché
object obj = null;
var isSuc = mClient.TryGet("key1", out obj );
// Clave existente: isSuc=true, obj =1234
isSuc = mClient.TryGet("key1", out obj );
// Clave inexistente: isSuc=false, obj mantiene nullLenguaje del código: JavaScript (javascript)
Comparación Get() frente a TryGet()
| Método | Características | Casos de uso |
|---|---|---|
mClient.Get(key) | Devuelve null si no existe la clave; no distingue entre valor‑null guardado y clave ausente | Lecturas simples, sin importar si la clave existe |
mClient.TryGet(key, out obj) | Valor booleano indica presencia de clave; distingue exactamente los dos escenarios de null | Recomendado cuando hay que detectar aciertos de caché |
También existe la versión genérica: mClient.TryGet<T>(key, out T value)
Observaciones
FlushAll()es una orden del lado servidor. En clúster borra por defecto los datos de todos los nodos;- Memcached no tiene persistencia; todos los datos se pierden al reiniciar el servicio;
- Prefiere
TryGetpara protegerse contra penetración de caché y evitar inundar la base de datos con peticiones.
Otras operaciones
Previous: Almacenamiento de objetos