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
| Modo | Regra de execução |
|---|---|
StoreMode.Set | Modo versátil, sobrescreve chave existente, cria quando não há |
StoreMode.Add | Apenas criação, ignora a gravação se a chave já existir |
StoreMode.Replace | Apenas 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
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).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
countnão exista → cria a chave com valor inicial igual a 2 - Caso
countjá exista → soma 1 sobre o valor numérico atual
Incrementsó funciona com valores do tipo texto numérico, não serve para textos comuns como endereços de sites.
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 complementarPrepend, que insere conteúdo no início do valor.
Operações CRUD
Previous: Utilização com C#
Next: Armazenamento de objetos