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 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.
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.
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
Para obtener datos CAS de un servidor Memcached, debe utilizar Memcached. obtiene método.
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")); } }
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
🚫