Operações CRUD

Esses dois trechos de código mostram as operações CRUD básicas do Memcached, incremento numérico e acréscimo de conteúdo. Vamos primeiro entender as principais APIs e a lógica de execução:

Set / Replace / Add

static void Main(string[] args)
{
    MemcachedClient uniqueInstance = new MemcachedClient();

    // 1. StoreMode.Set: cria uma chave nova se ela não existir, sobrescreve o valor caso já exista
    uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
    Console.WriteLine(uniqueInstance.Get<string>("site")); 
    // Saída: foxdevelop.com

    // 2. StoreMode.Replace: atualiza apenas se a chave **existir**, não faz nada quando a chave não existe
    uniqueInstance.Store(StoreMode.Replace, "site", "foxdevelop.com2");
    Console.WriteLine(uniqueInstance.Get<string>("site")); 
    // Saída: foxdevelop.com2

    // 3. StoreMode.Add: cria apenas se a chave **não existir**, não altera nada caso a chave já exista
    uniqueInstance.Store(StoreMode.Add, "site", "www.google.com");
    Console.WriteLine(uniqueInstance.Get<string>("site")); 
    // A chave site já existe, comando não tem efeito, saída continua: www.baidu.com

    // 4. Nova chamada do Set para sobrescrever o valor antigo
    uniqueInstance.Store(StoreMode.Set, "site", "www.microsoft.com");
    Console.WriteLine(uniqueInstance.Get<string>("site")); 
    // Saída: www.microsoft.com

    // Append: adiciona texto no final de um valor já existente
    // uniqueInstance.Append("site", "");

    // Increment faz o incremento de valores numéricos
    uniqueInstance.Increment("count", 1, 2);

    Console.Read();
}Code language: JavaScript (javascript)

Comparação entre os três modos do StoreMode

ModoRegra de execução
StoreMode.SetModo versátil, sobrescreve chave existente, cria quando não há
StoreMode.AddApenas criação, ignora a gravação se a chave já existir
StoreMode.ReplaceApenas atualização, ignora a gravação se a chave não existir

Remove para exclusão e Increment para incremento

MemcachedClient uniqueInstance = new MemcachedClient();

uniqueInstance.Store(StoreMode.Set, "site", "foxdevelop.com");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// Saída: foxdevelop.com

// Remove: apaga a chave informada
uniqueInstance.Remove("site");
Console.WriteLine(uniqueInstance.Get<string>("site"));
// Chave excluída, Get não retorna dado, devolve string vazia

// Append comentado
// uniqueInstance.Append("site",);

// Increment(chave, passo de incremento, valor inicial)
uniqueInstance.Increment("count", 1, 2);
Console.WriteLine(uniqueInstance.Get<string>("count"));Code language: JavaScript (javascript)

Explicação das APIs principais

  1. Remove("key")
    Exclui a chave especificada do cache. Após exclusão, Get<T> não consegue ler os dados e retorna o valor‑padrão (string vazia para o tipo texto).
  2. Increment("count", 1, 2)
    Significado dos parâmetros:
  • Parâmetro 1: nome da chave count
  • Parâmetro 2: passo do incremento (+1 a cada execução)
  • Parâmetro 3: valor inicial
  • Caso count não exista → cria a chave com valor inicial igual a 2
  • Caso count já exista → soma 1 sobre o valor numérico atual

Increment só funciona com valores do tipo texto numérico, não serve para textos comuns como endereços de sites.

  1. Append(key, data)
    Adiciona conteúdo no final do valor vinculado à chave; não produz resultado quando a chave não existe.
    Há também o método complementar Prepend, que insere conteúdo no início do valor.

Operações CRUD

Deixe um comentário

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