Outras operações

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
  1. 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étodoCaracterísticasCenários de utilização
mClient.Get(key)Retorna null quando a chave não existe; não diferencia valor null guardado de chave ausenteLeituras 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 nullRecomendado 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 TryGet para defesa contra penetração de cache, evitando um volume elevado de pedidos na base de dados.

Outras operações

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *