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