Memcached - CAS Komutu
CAS, Kontrol Et ve Ayarla veya Karşılaştır ve Değiştir anlamına gelir. MemcachedCASkomutu, son getirmeden sonra güncellenmemişse verileri ayarlamak için kullanılır. Anahtar Memcached'de yoksa geri dönerNOT_FOUND.
Sözdizimi
Memcached'in temel sözdizimi CAS komut aşağıda gösterildiği gibidir -
set key flags exptime bytes unique_cas_key [noreply]
value
Söz dizimindeki anahtar kelimeler aşağıda açıklandığı gibidir−
key - Verilerin saklandığı ve Memcached'den alındığı anahtarın adıdır.
flags - Sunucunun kullanıcı tarafından sağlanan verilerle depoladığı ve öğe alındığında verilerle birlikte geri döndüğü 32 bitlik işaretsiz tamsayıdır.
exptime- Saniye cinsinden sona erme süresidir. 0 gecikme yok demektir. Geçerlilik süresi 30 günden fazlaysa Memcached, bunu sona erme için bir UNIX zaman damgası olarak kullanır.
bytes- Depolanması gereken veri bloğundaki bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
unique_cas_key - Komut alırken elde edilen benzersiz anahtardır.
noreply (optional) - Sunucuya herhangi bir cevap göndermemesini bildiren bir parametredir.
value- Depolanması gereken verilerdir. Yukarıdaki seçeneklerle komut çalıştırıldıktan sonra verilerin yeni satıra aktarılması gerekir.
Çıktı
Komutun çıktısı aşağıda gösterildiği gibidir -
STORED
STORED başarıyı gösterir.
ERROR verileri kaydederken hatayı veya yanlış sözdizimini gösterir.
EXISTS birisinin son getirmeden bu yana CAS verilerini değiştirdiğini gösterir.
NOT_FOUND anahtarın Memcached sunucusunda olmadığını gösterir.
Misal
Memcached'de bir CAS komutu yürütmek için Memcached gets komutundan bir CAS belirteci almanız gerekir.
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
Java Uygulamasını Kullanan CAS
CAS verilerini Memcached sunucusundan almak için Memcached'i kullanmanız gerekir. gets yöntem.
Misal
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("tutorialspoint", 900, "memcached").isDone());
// Get cas token from cache
long castToken = mcc.gets("tutorialspoint").cas;
System.out.println("Cas token:"+castToken);
// now set new data in memcached server
System.out.println("Now set new data:"+mcc.cas("tutorialspoint",
castToken, 900, "redis"));
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
}
}
Çıktı
Programı derlerken ve çalıştırırken, aşağıdaki çıktıyı göreceksiniz -
Connection to server successful
set status:true
Cas token:3
Now set new data:OK
Get from Cache:redis