Memcached - Hızlı Kılavuz
Memcached, veritabanı yükünü azaltarak dinamik web uygulamalarını hızlandırmayı amaçlayan açık kaynaklı, yüksek performanslı, dağıtılmış bir bellek önbelleğe alma sistemidir. Veri tabanı çağrıları, API çağrıları veya sayfa görüntülemeden kaynaklanan, bellekte saklanan dizelerin, nesnelerin vb. Bir anahtar-değer sözlüğüdür.
Memcached, 2003 yılında LiveJournal için Brad Fitzpatrick tarafından geliştirildi. Ancak, şu anda diğerleri arasında Netlog, Facebook, Flickr, Wikipedia, Twitter ve YouTube tarafından kullanılıyor.
Memcached'in temel özellikleri aşağıdaki gibidir -
Açık kaynak kodludur.
Memcached sunucusu büyük bir karma tablodur.
Veritabanı yükünü önemli ölçüde azaltır
Veritabanı yükü yüksek web siteleri için mükemmel bir şekilde etkilidir.
Berkeley Yazılım Dağıtımı (BSD) lisansı altında dağıtılmaktadır.
TCP veya UDP üzerinden bir istemci-sunucu uygulamasıdır.
Memcached değil -
kalıcı bir veri deposu
bir veritabanı
application-specific
büyük bir nesne önbelleği
hataya dayanıklı veya yüksek düzeyde kullanılabilir
Memcached'i Ubuntu'ya Yükleme
Memcached'i Ubuntu'ya kurmak için terminale gidin ve aşağıdaki komutları yazın -
$sudo apt-get update
$sudo apt-get install memcached
Memcached Kurulumunu Onaylama
Memcached'in kurulu olup olmadığını onaylamak için aşağıda verilen komutu çalıştırmanız gerekir. Bu komut, Memcached'in varsayılan bağlantı noktasında çalıştığını gösterir.11211.
$ps aux | grep memcached
Memcached sunucusunu farklı bir port üzerinde çalıştırmak için aşağıda verilen komutu uygulayınız. Bu komut, 11111 numaralı TCP bağlantı noktasındaki sunucuyu başlatır ve bir arka plan programı işlemi olarak 11111 numaralı UDP bağlantı noktasını dinler.
$memcached -p 11111 -U 11111 -u user -d
Tek bir kurulum aracılığıyla birden çok Memcached sunucusu çalıştırabilirsiniz.
Memcached Java Ortamı Kurulumu
Memcached'i Java programınızda kullanmak için indirmeniz gerekir spymemcached-2.10.3.jar ve bu jar'i sınıf yolunda ayarlayın.
Memcached sunucusuna bağlanmak için HOST ve PORT adlarında telnet komutunu kullanmanız gerekir.
Sözdizimi
Memcached telnet komutunun temel sözdizimi aşağıda gösterildiği gibidir -
$telnet HOST PORT
Buraya, HOST ve PORT Memcached sunucusunun üzerinde çalıştığı sırasıyla makine IP'si ve bağlantı noktası numarasıdır.
Misal
Aşağıdaki örnek, bir Memcached sunucusuna nasıl bağlanılacağını ve basit bir set ve get komutunun nasıl çalıştırılacağını gösterir. Memcached sunucusunun 127.0.0.1 ana bilgisayar ve 11211 numaralı bağlantı noktasında çalıştığını varsayalım.
$telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
// now store some data and get it from memcached server
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
Java Uygulamasından Bağlantı
Memcached sunucusunu java programınızdan bağlamak için, önceki bölümde gösterildiği gibi Memcached jar'ını sınıf yolunuza eklemeniz gerekir. Memcached sunucusunun 127.0.0.1 ana bilgisayar ve 11211 numaralı bağlantı noktasında çalıştığını varsayalım. -
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 sucessfully");
//not set data into memcached server
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
//Get value from cache
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 successfully
set status:true
Get from Cache:memcached.
Terminal birkaç bilgi mesajı da gösterebilir, bunlar göz ardı edilebilir.
Memcached set komutu, yeni veya mevcut bir anahtara yeni bir değer ayarlamak için kullanılır.
Sözdizimi
Memcached'in temel sözdizimi set komut aşağıda gösterildiği gibidir -
set key flags exptime bytes [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 UNIX zaman damgası olarak kullanır.
bytes- Veri bloğunda saklanması gereken bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
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 yanlış sözdizimi veya hatayı gösterir.
Misal
Aşağıdaki örnekte, anahtar olarak tutorialspoint'i kullanıyoruz ve içinde 900 saniyelik bir sona erme süresiyle Memcached değerini ayarlıyoruz.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
Memcached
END
Java Uygulamasını Kullanarak Verileri Ayarlama
Memcached sunucusunda bir anahtar ayarlamak için Memcached'i kullanmanız gerekir set 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 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"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached addkomutu, yeni bir anahtara bir değer ayarlamak için kullanılır. Anahtar zaten mevcutsa, NOT_STORED çıktısını verir.
Sözdizimi
Memcached'in temel sözdizimi add komut aşağıda gösterildiği gibidir -
add key flags exptime bytes [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- Veri bloğunda saklanması gereken bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
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.
NOT_STORED verilerin Memcached'de saklanmadığını gösterir.
Misal
Aşağıdaki örnekte, anahtar olarak 'anahtar' kullanıyoruz ve 900 saniyelik bir sona erme süresiyle Memcached değerini ekliyoruz.
add key 0 900 9
memcached
STORED
get key
VALUE key 0 9
Memcached
END
Arıza Çıkışı
add key 0 900 5
redis
NOT_STORED
Java Uygulamasını Kullanarak Veri Ekleme
Memcached sunucusuna veri eklemek için Memcached'i kullanmanız gerekir. add 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("add status:"+mcc.add("tutorialspoint", 900, "redis").done);
System.out.println("add status:"+mcc.add("tp", 900, "redis").done);
// Get value from cache
System.out.println("Get from Cache tp:"+mcc.get("tp"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successful
add status:false
add status:true
Get from Cache tp:redis
Memcached replacekomutu, mevcut bir anahtarın değerini değiştirmek için kullanılır. Anahtar yoksa, NOT_STORED çıktısını verir.
Sözdizimi
Memcached'in temel sözdizimi replace komut aşağıda gösterildiği gibidir -
replace key flags exptime bytes [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- Veri bloğunda saklanması gereken bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
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.
NOT_STORED verilerin Memcached'de saklanmadığını gösterir.
Misal
Aşağıdaki örnekte, anahtar olarak 'anahtar' kullanıyoruz ve 900 saniyelik bir sona erme süresi ile memcached'i içinde saklıyoruz. Bundan sonra, aynı anahtar 'redis' değeriyle değiştirilir.
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
Java Uygulamasını Kullanarak Verileri Değiştirin
Memcached sunucusundaki verileri değiştirmek için Memcached'i kullanmanız gerekir. replace 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 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"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:memcached
Replace cache:true
Get from Cache:redis
Memcached appendkomutu, mevcut bir anahtara bazı veriler eklemek için kullanılır. Veriler, anahtarın mevcut verilerinden sonra saklanır.
Sözdizimi
Memcached'in temel sözdizimi append komut aşağıda gösterildiği gibidir -
append key flags exptime bytes [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- Veri bloğunda saklanması gereken bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
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.
NOT_STORED anahtarın Memcached sunucusunda olmadığını gösterir.
CLIENT_ERROR hatayı gösterir.
Misal
Aşağıdaki örnekte, var olmayan bir anahtara bazı veriler eklemeye çalışıyoruz. Dolayısıyla Memcached geri döndüNOT_STORED. Bundan sonra, bir anahtar belirleyip içine veri ekliyoruz.
append tutorials 0 900 5
redis
NOT_STORED
set tutorials 0 900 9
memcached
STORED
get tutorials
VALUE tutorials 0 14
memcached
END
append tutorials 0 900 5
redis
STORED
get tutorials
VALUE tutorials 0 14
memcachedredis
END
Java Uygulamasını Kullanarak Veri Ekleme
Memcached sunucusuna veri eklemek için Memcached'i kullanmanız gerekir. append 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 value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// now append some data into existing key
System.out.println("Append to cache:"+mcc.append("tutorialspoint", "redis").isDone());
// get the updated key
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
Get from Cache:memcached
Append to cache:true
Get from Cache:memcachedredis
Memcached prependkomutu, mevcut bir anahtara bazı veriler eklemek için kullanılır. Veriler, anahtarın mevcut verilerinden önce saklanır.
Sözdizimi
Memcached'in temel sözdizimi prepend komut aşağıda gösterildiği gibidir -
prepend key flags exptime bytes [noreply]
value
Söz dizimindeki anahtar kelimeler aşağıda açıklandığı gibidir−
key - Verilerin Memcached'de depolandığı ve 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- Veri bloğunda saklanması gereken bayt sayısıdır. Bu, Memcached'de depolanması gereken verilerin uzunluğudur.
noreply (optional) −Sunucuya herhangi bir yanıt 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.
NOT_STORED anahtarın Memcached sunucusunda olmadığını gösterir.
CLIENT_ERROR hatayı gösterir.
Misal
Aşağıdaki örnekte, var olmayan bir anahtara bazı veriler ekliyoruz. Dolayısıyla Memcached geri döndüNOT_STORED. Bundan sonra, bir anahtar ayarlayıp veriyi içine ekliyoruz.
prepend tutorials 0 900 5
redis
NOT_STORED
set tutorials 0 900 9
memcached
STORED
get tutorials
VALUE tutorials 0 14
memcached
END
prepend tutorials 0 900 5
redis
STORED
get tutorials
VALUE tutorials 0 14
redismemcached
END
Java Uygulamasını Kullanarak Verileri Başa Ekleme
Verileri Memcached sunucusuna eklemek için Memcached'i kullanmanız gerekir. prepend 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 value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// now append some data into existing key
System.out.println("Prepend to cache:"+mcc.prepend("tutorialspoint", "redis").isDone());
// get the updated key
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
Get from Cache:memcached
Prepend to cache:true
Get from Cache:redismemcached
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- Veri bloğunda saklanması gereken 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
Memcached getkomutu, anahtarda saklanan değeri almak için kullanılır. Anahtar Memcached'de yoksa hiçbir şey döndürmez.
Sözdizimi
Memcached'in temel sözdizimi get komut aşağıda gösterildiği gibidir -
get key
Misal
Aşağıdaki örnekte, tutorialspoint'i anahtar olarak kullanıyoruz ve 900 saniyelik bir sona erme süresi ile memcached'i içinde depoluyoruz.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
Java Uygulamasını Kullanarak Veri Alın
Memcached sunucusundan veri almak için Memcached'i kullanmanız gerekir. get 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 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"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:memcached
Memcached getskomut, CAS belirteci ile değeri almak için kullanılır. Anahtar Memcached'de yoksa hiçbir şey döndürmez.
Sözdizimi
Memcached'in temel sözdizimi gets komut aşağıda gösterildiği gibidir -
get key
Misal
set tutorialspoint 0 900 9
memcached
STORED
gets tutorialspoint
VALUE tutorialspoint 0 9 1
memcached
END
Bu örnekte, tutorialspoint'i anahtar olarak kullanıyoruz ve 900 saniyelik bir sona erme süresiyle memcached'i içinde saklıyoruz.
Java Uygulamasını Kullanarak CAS Verilerini Alın
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 sucessfully");
System.out.println("set status:"+mcc.set("tutorialspoint", 900, "memcached").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.gets("tutorialspoint"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:{CasValue 2/memcached}
Memcached delete komutu Memcached sunucusundan mevcut bir anahtarı silmek için kullanılır.
Sözdizimi
Memcached'in temel sözdizimi delete komut aşağıda gösterildiği gibidir -
delete key [noreply]
Çıktı
CAS komutu aşağıdaki sonuçlardan birini üretebilir -
DELETED silme işleminin başarılı olduğunu gösterir.
ERROR veri silinirken hata veya yanlış sözdizimi olduğunu gösterir.
NOT_FOUND anahtarın Memcached sunucusunda olmadığını gösterir.
Misal
Bu örnekte, tutorialspoint'i anahtar olarak kullanıyoruz ve 900 saniyelik sona erme süresiyle memcached'i içinde saklıyoruz. Bundan sonra saklanan anahtarı siler.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
delete tutorialspoint
DELETED
get tutorialspoint
END
delete tutorialspoint
NOT_FOUND
Java Uygulamasını Kullanarak Verileri Silin
Memcached sunucusundan verileri silmek için Memcached'i kullanmanız gerekir. delete yöntem.
Misal
import java.net.InetSocketAddress;
import java.util.concurrent.Future;
import net.spy.memcached.MemcachedClient;
public class MemcachedJava {
public static void main(String[] args) {
try{
// Connecting to Memcached server on localhost
MemcachedClient mcc = new MemcachedClient(new InetSocketAddress("127.0.0.1", 11211));
System.out.println("Connection to server sucessful.");
// add data to memcached server
Future fo = mcc.set("tutorialspoint", 900, "World's largest online tutorials library");
// print status of set method
System.out.println("set status:" + fo.get());
// retrieve and check the value from cache
System.out.println("tutorialspoint value in cache - " + mcc.get("tutorialspoint"));
// try to add data with existing key
Future fo = mcc.delete("tutorialspoint");
// print status of delete method
System.out.println("delete status:" + fo.get());
// retrieve and check the value from cache
System.out.println("tutorialspoint value in cache - " + mcc.get("codingground"));
// Shutdowns the memcached client
mcc.shutdown();
}catch(Exception ex)
System.out.println(ex.getMessage());
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successful
set status:true
tutorialspoint value in cache - World's largest online tutorials library
delete status:true
tutorialspoint value in cache - null
Memcached delete komutu Memcached sunucusundan mevcut bir anahtarı silmek için kullanılır.
Sözdizimi
Memcached'in temel sözdizimi delete komut aşağıda gösterildiği gibidir -
delete key
Anahtar başarıyla silinirse, SİLİNMİŞ döndürür. Anahtar bulunamazsa, NOT_FOUND döndürür, aksi takdirde ERROR döndürür.
Misal
Bu örnekte, tutorialspoint'i anahtar olarak kullanıyoruz ve 900 saniyelik sona erme süresiyle memcached'i içinde saklıyoruz. Bundan sonra saklanan anahtarı siler.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
delete tutorialspoint
DELETED
get tutorialspoint
END
delete tutorialspoint
NOT_FOUND
Java Uygulamasını Kullanarak Verileri Silin
Memcached sunucusundan verileri silmek için Memcached'i kullanmanız gerekir. delete 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").done);
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("tutorialspoint"));
// delete value from cache
System.out.println("Delete from Cache:"+mcc.delete("tutorialspoint").isDone());
// check whether value exists or not
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
Get from Cache:memcached
Delete from Cache:true
Get from Cache:null
Memcached incr ve decrkomutlar, mevcut bir anahtarın sayısal değerini artırmak veya azaltmak için kullanılır. Anahtar bulunmazsa, geri dönerNOT_FOUND. Anahtar sayısal değilse, dönerCLIENT_ERROR cannot increment or decrement non-numeric value. Aksi takdirde,ERROR Iade edildi.
Sözdizimi - incr
Memcached'in temel sözdizimi incr komut aşağıda gösterildiği gibidir -
incr key increment_value
Misal
Bu örnekte, ziyaretçileri anahtar olarak kullanıyoruz ve başlangıçta 10 olarak ayarlıyoruz, ardından ziyaretçileri 5 artırıyoruz.
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
incr visitors 5
15
get visitors
VALUE visitors 0 2
15
END
Sözdizimi - decr
Memcached'in temel sözdizimi decr komut aşağıda gösterildiği gibidir
decr key decrement_value
Misal
set visitors 0 900 2
10
STORED
get visitors
VALUE visitors 0 2
10
END
decr visitors 5
5
get visitors
VALUE visitors 0 1
5
END
Java Uygulamasını Kullanarak Incr / Decr
Memcached sunucusundaki verileri artırmak veya azaltmak için Memcached'i kullanmanız gerekir incr or decr yöntemler sırasıyla.
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 sucessfully");
System.out.println("set status:"+mcc.set("count", 900, "5").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("count"));
// now increase the stored value
System.out.println("Increment value:"+mcc.incr("count", 2));
// now decrease the stored value
System.out.println("Decrement value:"+mcc.decr("count", 1));
// now get the final stored value
System.out.println("Get from Cache:"+mcc.get("count"));
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Memcached stats komutu, PID, sürüm, bağlantılar vb. gibi sunucu istatistiklerini döndürmek için kullanılır.
Sözdizimi
Memcached'in temel sözdizimi stats komut aşağıda gösterildiği gibidir -
stats
Misal
stats
STAT pid 1162
STAT uptime 5022
STAT time 1415208270
STAT version 1.4.14
STAT libevent 2.0.19-stable
STAT pointer_size 64
STAT rusage_user 0.096006
STAT rusage_system 0.152009
STAT curr_connections 5
STAT total_connections 6
STAT connection_structures 6
STAT reserved_fds 20
STAT cmd_get 6
STAT cmd_set 4
STAT cmd_flush 0
STAT cmd_touch 0
STAT get_hits 4
STAT get_misses 2
STAT delete_misses 1
STAT delete_hits 1
STAT incr_misses 2
STAT incr_hits 1
STAT decr_misses 0
STAT decr_hits 1
STAT cas_misses 0
STAT cas_hits 0
STAT cas_badval 0
STAT touch_hits 0
STAT touch_misses 0
STAT auth_cmds 0
STAT auth_errors 0
STAT bytes_read 262
STAT bytes_written 313
STAT limit_maxbytes 67108864
STAT accepting_conns 1
STAT listen_disabled_num 0
STAT threads 4
STAT conn_yields 0
STAT hash_power_level 16
STAT hash_bytes 524288
STAT hash_is_expanding 0
STAT expired_unfetched 1
STAT evicted_unfetched 0
STAT bytes 142
STAT curr_items 2
STAT total_items 6
STAT evictions 0
STAT reclaimed 1
END
Java Uygulamasını Kullanan İstatistikler
Memcached sunucusundan istatistik almak için Memcached'i kullanmanız gerekir. stats 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("Stats:"+mcc.stats);
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successful
Stats:[/127.0.0.1:11211:[delete_hits:0, bytes:71, total_items:4,
rusage_system:0.220013, touch_misses:0, cmd_touch:0, listen_disabled_num:0,
auth_errors:0, evictions:0, version:1.4.14, pointer_size:64, time:1417279366,
incr_hits:1, threads:4, expired_unfetched:0, limit_maxbytes:67108864,
hash_is_expanding:0, bytes_read:170, curr_connections:8, get_misses:1,
reclaimed:0, bytes_written:225, hash_power_level:16, connection_structures:9,
cas_hits:0, delete_misses:0, total_connections:11, rusage_user:0.356022,
cmd_flush:0, libevent:2.0.19-stable, uptime:12015, reserved_fds:20,
touch_hits:0, cas_badval:0, pid:1138, get_hits:2, curr_items:1, cas_misses:0,
accepting_conns:1, evicted_unfetched:0, cmd_get:3, cmd_set:2, auth_cmds:0,
incr_misses:1, hash_bytes:524288, decr_misses:1, decr_hits:1, conn_yields:0]]
Memcached stats items komutu, plaka kimliğine göre düzenlenen sayı, yaş, tahliye vb. gibi öğe istatistiklerini almak için kullanılır.
Sözdizimi
Memcached'in temel sözdizimi stats items komut aşağıda gösterildiği gibidir -
stats items
Misal
stats items
STAT items:1:number 1
STAT items:1:age 7
STAT items:1:evicted 0
STAT items:1:evicted_nonzero 0
STAT items:1:evicted_time 0
STAT items:1:outofmemory 0
STAT items:1:tailrepairs 0
STAT items:1:reclaimed 0
STAT items:1:expired_unfetched 0
STAT items:1:evicted_unfetched 0
END
Memcached stats slabs komutu, döşeme kimliğine göre düzenlenmiş boyut, bellek kullanımı, komutlar, sayım vb. gibi döşeme istatistiklerini görüntüler.
Sözdizimi
Memcached'in temel sözdizimi stats slabs komut aşağıda gösterildiği gibidir -
stats slabs
Misal
stats slabs
STAT 1:chunk_size 96
STAT 1:chunks_per_page 10922
STAT 1:total_pages 1
STAT 1:total_chunks 10922
STAT 1:used_chunks 1
STAT 1:free_chunks 10921
STAT 1:free_chunks_end 0
STAT 1:mem_requested 71
STAT 1:get_hits 0
STAT 1:cmd_set 1
STAT 1:delete_hits 0
STAT 1:incr_hits 0
STAT 1:decr_hits 0
STAT 1:cas_hits 0
STAT 1:cas_badval 0
STAT 1:touch_hits 0
STAT active_slabs 1
STAT total_malloced 1048512
END
Memcached stats sizeskomutu, önbellekteki her boyuttaki öğelerin boyutları ve sayısı hakkında bilgi sağlar. Bilgiler iki sütun halinde döndürülür. İlk sütun, öğenin boyutudur (en yakın 32 bayt sınırına yuvarlanır) ve ikinci sütun, önbellekteki bu boyuttaki öğelerin sayısıdır.
Sözdizimi
Memcached'in temel sözdizimi stats sizes komut aşağıda gösterildiği gibidir -
stats sizes
Misal
stats sizes
STAT 96 1
END
Öğe boyutu istatistikleri, yalnızca sakladığınız nesnelerin boyutlarını belirlemek için kullanışlıdır. Gerçek bellek tahsisi yalnızca yığın boyutu ve sayfa boyutu açısından ilgili olduğundan, bilgi yalnızca dikkatli bir hata ayıklama veya tanılama oturumu sırasında yararlıdır.
Memcached flush_allkomutu, Memcached sunucusundan tüm verileri (anahtar-değer çiftleri) silmek için kullanılır. Adında isteğe bağlı bir parametre kabul edertime bu, Memcached verilerinin ne kadar süre sonra temizleneceğini belirler.
Sözdizimi
Memcached'in temel sözdizimi flush_all komut aşağıda gösterildiği gibidir -
flush_all [time] [noreply]
Yukarıdaki komut her zaman Tamam döndürür.
Misal
Aşağıdaki örnekte, bazı verileri Memcached sunucusunda saklıyoruz ve ardından tüm verileri temizliyoruz.
set tutorialspoint 0 900 9
memcached
STORED
get tutorialspoint
VALUE tutorialspoint 0 9
memcached
END
flush_all
OK
get tutorialspoint
END
Java Uygulamasını Kullanarak Verileri Temizle
Memcached sunucusundaki verileri temizlemek için Memcached'i kullanmanız gerekir. flush 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 sucessfully");
System.out.println("set status:"+mcc.set("count", 900, "5").isDone());
// Get value from cache
System.out.println("Get from Cache:"+mcc.get("count"));
// now increase the stored value
System.out.println("Increment value:"+mcc.incr("count", 2));
// now decrease the stored value
System.out.println("Decrement value:"+mcc.decr("count", 1));
// now get the final stored value
System.out.println("Get from Cache:"+mcc.get("count"));
// now clear all this data
System.out.println("Clear data:"+mcc.flush().isDone());
}
}
Çıktı
Programı derlerken ve çalıştırırken aşağıdaki çıktıyı göreceksiniz -
Connection to server successfully
set status:true
Get from Cache:5
Increment value:7
Decrement value:6
Get from Cache:6
Clear data:true