Memcached – Comando CAS

CAS son las siglas de Check-And-Set o Compare-And-Swap. Memcached CAS El comando se usa para establecer datos si no se han actualizado desde la última búsqueda. Si la clave no existe en Memcached, regresa EXTRAVIADO

Sintaxis

Sintaxis básica de Memcached CAS comando como se muestra a continuación –

set key flags exptime bytes unique_cas_key [noreply]
value

Las palabras clave en la sintaxis se describen a continuación:

  • llave – Este es el nombre de la clave con la que se guardan y recuperan los datos de Memcached.

  • banderas – Este es un entero de 32 bits sin signo que el servidor almacena junto con los datos proporcionados por el usuario y devuelve con los datos cuando se recibe el elemento.

  • Tiempo de expiración – Este es el tiempo de caducidad en segundos. 0 significa que no hay demora. Si la fecha de vencimiento excede los 30 días, Memcached la usa como marca de tiempo de UNIX para el vencimiento.

  • bytes – Este es el número de bytes en el bloque de datos que se almacenarán. Esta es la longitud de los datos que se almacenarán en Memcached.

  • Unique_cas_key – Esta es una clave única del comando gets.

  • noreply (opcional) – Este es un parámetro que le dice al servidor que no envíe una respuesta.

  • agradecer – Estos son los datos que deben almacenarse. Los datos deben transferirse en una nueva línea después de ejecutar el comando con los parámetros anteriores.

Salida

El resultado del comando se muestra a continuación:

STORED
  • ALMACENAMIENTO indica éxito.

  • ERROR indica un error al guardar datos o una sintaxis incorrecta.

  • EXISTE indica que alguien ha cambiado los datos CAS desde la última búsqueda.

  • EXTRAVIADO indica que la clave no existe en el servidor Memcached.

Ejemplo

Para ejecutar un comando CAS en Memcached, debe obtener el token CAS del comando gets de Memcached.

cas tp 0 900 9
ERROR
cas tp 0 900 9 2
memcached
set tp 0 900 9
memcached
STORED
gets tp
VALUE tp 0 9 1
memcached
END
cas tp 0 900 5 2
redis
EXISTS
cas tp 0 900 5 1
redis
STORED
get tp
VALUE tp 0 5
redis
END

CAS usando la aplicación Java

Para obtener datos CAS de un servidor Memcached, debe utilizar Memcached. obtiene método.

Ejemplo

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 successful");
      System.out.println("set status:"+mcc.set("AreaTutorial", 900, "memcached").isDone());

      // Get cas token from cache
      long castToken = mcc.gets("AreaTutorial").cas;
      System.out.println("Cas token:"+castToken);

      // now set new data in memcached server
      System.out.println("Now set new data:"+mcc.cas("AreaTutorial",
      castToken, 900, "redis"));
      System.out.println("Get from Cache:"+mcc.get("AreaTutorial"));
   }
}

Salida

Al compilar y ejecutar el programa, verá el siguiente resultado:

Connection to server successful
set status:true
Cas token:3
Now set new data:OK
Get from Cache:redis

🚫