CAS står for inn- og-Set eller sammenligne-Og-Swap. Memcached CAS kommando sjekker "og" sett "dataelementet hvis og bare hvis, har ingen annen klient prosess oppdatert det siden sist av denne klienten.
For eksempel, hvis i det siste, hentet vi verdien < nøkkel, verdi > som < total, 3784 >. Hvis vi nå prøver å set
eller endre denne verdien ved hjelp av CAS-kommandoen, da CAS-kommandoen vil først sjekke om det er samme verdi eller blir endret av en annen klient. Hvis den blir endret, så vi bør ikke endre det for å unngå eventuelle rase uregelmessigheter i systemet. Hvis verdien ikke er endret siden vårt forrige hente, CAS nå set
er den oppdaterte verdien.
memcached server tildeler en unik 64-bit CAS token til alle elementer som er lagret i den. Vi bruker får
kommando for å hente CAS antall ethvert element
Syntax
Den grunnleggende syntaks memcached CAS
kommandoen som vist nedenfor og minus.;
cas nøkkel flagg exptime bytes unique_cas_token [noreply]
Nøkkelordene i syntaksen er som beskrevet nedenfor −
-tasten Anmeldelser - Det er navnet på den unike nøkkel der data er tilgjengelig
flagg Z -. Det er den 32-bit usignert heltall som server butikker med data gitt av brukeren, og returnerer sammen med data når varen hentes
exptime Anmeldelser -. Det er utløpstiden (sekunder) av data som er lagret i cache. En 0 verdi betyr "aldri utløpe", dvs. det skal ikke fjernes fra hurtigbufferen hvis nødvendig. Hvis exptime er mer enn 30 dager, så memcached tolker det som UNIX timestamp for utløps
bytes Anmeldelser -. Dette er lengden av dataene i byte som må lagres i memcached
unique_cas_token Anmeldelser og minus.; Det er et unikt kodenummeret hentet fra får comamand
noreply (valgfritt) Anmeldelser -. Denne para informerer serveren ikke til å sende noen svar verdi Anmeldelser - Det er data som må lagres. Dataene må gis på den nye linjen etter å kjøre kommandoen med de ovennevnte alternativene. For å utføre en CAS-kommandoen i memcached, må du skaffe en CAS token fra memcached får kommandoen. blir kommandoen variant av få kommando, det er forklart i kommende kapittel I dette eksemplet skal vi se og minus.; CAS kommando kan produsere ett av følgende resultat − LAGRET FEIL EXISTS NOT_FOUND For å få CAS data fra en memcached server, trenger du å bruke memcached får På kompilere og kjøre programmet, får du se følgende resultat −
Eksempel
Feil cas
uttalelse dvs. unike cas nøkkelen mangler
cas
ing en ikke-eksisterende nøkkel
legg til en nøkkelverdi element
få unik cas nøkkel ved hjelp av får
kommando
bruke cas Hotell og unique_cas_key
å oppdatere data element
bruke få
kommando og sjekke om informasjonen blir oppdatert
cas tp 0 900 9ERROR < − unik cas nøkkelen mangler
cas tp 0 900 9 2memcachedNOT_FOUND < − nøkkelen tp
eksisterer ikke
satt tp 0 900 9memcachedSTOREDgets tpVALUE tp 0 9 1memcachedENDcas tp 0 900 5 1redisSTOREDget tpVALUE tp 0 5redisEND
Output
indikerer suksess
indikerer feil under lagring. data eller feil syntaks.
indikerer at noen har endret CAS data siden sist hente.
indikerer at nøkkelen ikke eksisterer i den memcached serveren.
CAS Bruke Java Application
metode
Eksempel
import java.net.InetSocketAddress;. import java.util.concurrent.Future, import net.spy.memcached.CASValue, import net. spy.memcached.CASResponse, import net.spy.memcached.MemcachedClient; public class MemcachedJava {public static void main (String [] args) {try {//Koble til memcached server på localhost MemcachedClient MCC = new MemcachedClient (ny InetSocketAddress (" 127.0.0.1 ", 11211)); System.out.println ("Tilkobling til serveren vellykkede."); //Legge data til memcached server Future fo = mcc.set ("tutorialspoint", 900, "Free Education"); //Print statusen sett metode System.out.println ("set status:" + fo.get ()); //Hente verdien som er lagret for tutorialspoint fra cache System.out.println ("tutorialspoint verdi i cache -" + mcc.get ("tutorialspoint")); //Skaffe CAS token verdi ved hjelp får metode CASValue casValue = mcc.gets ("tutorialspoint"); //Skjerm CAS token verdi System.out.println ("CAS token -" + casValue); //Prøve å oppdatere data ved hjelp memcached cas metode CASResponse casresp = MCC cas plakater ("tutorialspoint", casValue.getCas (), 900, "største Guider-biblioteket."); //Skjerm CAS Response System.out.println ("CAS Response -" + casresp); //Hente og sjekke verdien fra cache System.out.println ("tutorialspoint verdi i cache -" + mcc.get ("tutorialspoint")); //Stengn den memcached klient mcc.shutdown (); } catch (Exception ex) System.out.println (ex.getMessage ()); }}
Output
Tilkobling til server successful.set status: truetutorialspoint verdi i cache - Gratis EducationCAS - {CasValue 34 /Gratis Utdanning} CAS Response - OKtutorialspoint verdi i cache - Største Guider-Library