Memcached - Substituir Dados

Memcached replacecomando é usado para substituir o valor de uma chave existente. Se a chave não existir, ele fornecerá a saída NOT_STORED.

Sintaxe

A sintaxe básica do Memcached replace comando é como mostrado abaixo -

replace key flags exptime bytes [noreply]
value

As palavras-chave na sintaxe são as descritas abaixo -

  • key - É o nome da chave pela qual os dados são armazenados e recuperados do Memcached.

  • flags - É o inteiro não assinado de 32 bits que o servidor armazena com os dados fornecidos pelo usuário e retorna junto com os dados quando o item é recuperado.

  • exptime- É o tempo de expiração em segundos. 0 significa nenhum atraso. Se o tempo de exptime for superior a 30 dias, o Memcached o usará como um carimbo de data / hora UNIX para expiração.

  • bytes- É o número de bytes no bloco de dados que precisa ser armazenado. Este é o comprimento dos dados que precisam ser armazenados no Memcached.

  • noreply (optional) - É um parâmetro que informa ao servidor para não enviar resposta.

  • value- São os dados que precisam ser armazenados. Os dados precisam ser passados ​​na nova linha após a execução do comando com as opções acima.

Resultado

A saída do comando é mostrada abaixo -

STORED
  • STORED indica sucesso.

  • NOT_STORED indica que os dados não estão armazenados no Memcached.

Exemplo

No exemplo a seguir, usamos 'key' como a chave e armazenamos memcached nela com um tempo de expiração de 900 segundos. Depois disso, a mesma chave é substituída pelo valor 'redis'.

add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
memcached
END
replace key 0 900 5
redis
get key
VALUE key 0 5
redis
END

Substituir dados usando aplicativo Java

Para substituir os dados em um servidor Memcached, você precisa usar o Memcached replace método.

Exemplo

import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
   public static void main(String[] args) {
      
      // Connecting to Memcached server on localhost
      MemcachedClient mcc = new MemcachedClient(new
      InetSocketAddress("127.0.0.1", 11211));
      System.out.println("Connection to server sucessfully");
      System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
      
      // Get value from cache
      System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
      
      // now replace the existing data
      System.out.println("Replace cache:"+mcc.replace("tutorialspoint", 900, "redis").done);
      
      // get the updated data
      System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
   }
}

Resultado

Ao compilar e executar o programa, você verá a seguinte saída -

Connection to server successfully
set status:true
Get from Cache:memcached
Replace cache:true
Get from Cache:redis