I. FlushAll() Limpar cache
mClient.Store(StoreMode.Set, "key1", 1234L);
Console.Write(mClient.Get("key1")); // Obtém 1234 normalmente
mClient.FlushAll();
Console.Write(mClient.Get("key1")); // Retorna nullCode language: JavaScript (javascript)
Pontos importantes
FlushAll(): Apaga todas as chaves no servidor Memcached, use com muita cautela!
- Não chamar em ambiente de produção; apaga todo cache de negócio;
- Apenas invalida dados existentes sem libertar memória (limpeza preguiçosa do Memcached).
II. TryGet Obter cache de forma segura
object obj = null;
var isSuc = mClient.TryGet("key1", out obj );
// Chave existe: isSuc=true, obj =1234
isSuc = mClient.TryGet("key1", out obj );
// Chave inexistente: isSuc=false, obj mantém‑se nullCode language: JavaScript (javascript)
Comparação Get() vs TryGet()
| Método | Características | Cenários de utilização |
|---|---|---|
mClient.Get(key) | Retorna null quando a chave não existe; não diferencia valor null guardado de chave ausente | Leituras simples, sem necessidade de verificar existência da chave |
mClient.TryGet(key, out obj) | Valor booleano informa se a chave existe; distingue corretamente os dois casos de null | Recomendado para lógica que precisa detetar acerto de cache |
Também suporta versão genérica: mClient.TryGet<T>(key, out T value)
Observações
FlushAll()é um comando de servidor. Em cluster limpa dados de todos os nós por omissão;- Memcached não tem persistência; todos os dados desaparecem no reinício do serviço;
- Dê preferência ao
TryGetpara defesa contra penetração de cache, evitando um volume elevado de pedidos na base de dados.
Outras operações
Previous: Armazenamento de objetos