İçerikler :

Danga Interactive Memcached Memcached'in Veritabanı İle Kullanım Algoritm.. memcached - Dağıtımlı (distributed) önbellek .. Memcached Server Çalıştırılması Memcached Web Sitesi PHP İçin Memcache Manual'i PHP ile Yazılmış Memcached Örneği spymemcached Client Kütüphanesi spymemcached ile ElastiCache Memcached Örneği

Bu Sayfayı Paylaş:

Kavram

Memcached

Tanım: Danga Intewractive tarafından geliştirilmiş Dağıtık Cache sistemi. Bir veya birden fazla server üzerinde nesneleri cache'te saklamak için kullanılan sistem.

Örnek

spymemcached ile ElastiCache Memcached Örneği

Aşağıda spymemcached client kütüphanesi ile memcached server'ına (AWS Elasticache) bağlanma örneği bulunmaktadır : 

MemcachedClient c=new MemcachedClient(AddrUtil.getAddresses(
	"defaultcache.xyx.0001.use1.cache.amazonaws.com:11211" +
	" defaultcache.xyx.0002.use1.cache.amazonaws.com:11211"));
c.set("someKey", 3600, new String("Hello Cache"));
Object myObject=c.get("someKey");
System.out.println(myObject);

İki memcached node'u bulunmaktadır bu nedenle iki cache server'ı kullanılmıştır. Cache'e someKey adında bir nesne atılıyor ve daha sonra okunup ekrana basılıyor. 


Örnek

PHP ile Yazılmış Memcached Örneği

PHP ile Memcached'e veri yazılması ve okunması ile ilgili örnek : 

<?php

$memcache = memcache_connect('localhost', 11211);

if ($memcache) {
        $memcache->set("str_key", "String to store in memcached");
        $memcache->set("num_key", 123);

        $object = new StdClass;
        $object->attribute = 'test';
        $memcache->set("obj_key", $object);

        $array = Array('assoc'=>123, 345, 567);
        $memcache->set("arr_key", $array);

        var_dump($memcache->get('str_key'));
        var_dump($memcache->get('num_key'));
        var_dump($memcache->get('obj_key'));
}
else {
        echo "Connection to memcached failed";
}
?>

Localhost'taki memcached server'ına bağlanılmakta ve str_key , num_key ve obj_key şeklinde farklı nesne tipleri cache'e atılıp geri alınmaktadır. 


Örnek

Memcached'in Veritabanı İle Kullanım Algoritmasını Gösteren Örnek

Aşağıda Memcached'in veritabanı ile nasıl kullanılabileceğini gösteren algoritma gösterilmektedir :

function get_foo(foo_id)
    foo = memcached_get("foo:" . foo_id)
    return foo if defined foo

    foo = fetch_foo_from_database(foo_id)
    memcached_set("foo:" . foo_id, foo)
    return foo
end

get_foo fonksiyonu parametre olarak foo_id ile bir id değeri almaktadır. İlk önce bu foo_id ile cache'te değerin olup olmadığı kontrol edilir. Eğer cache'te var ise cache'teki değer döndrülür. Eğer cache'te yok ise fetch_foo_from_database fonksiyonu ile değer veritabanından çekilir ve sonra cache'e atılır. Bundan sonraki çağrımlarda veri cache'ten verilecektir. İstenirse bir değer cache'e koyulma sırasında bir expire süresi (kullanım sürsinin dolması)  verilebilir. Bu expire zamanı kadar zaman geçince değer cache'ten temizlenir ve bu şekilde cache'teki veri güncel olması sağlanır. 


Kaynak

Danga Interactive

memcached, Mogile FS gibi ürünleri geliştiren kurum.

Kaynak

Memcached Web Sitesi

Memcached ile ilgili bilgi, mail listesi , bug raporları vs.. olduğu memcached'in resmi sitesi

Kaynak

spymemcached Client Kütüphanesi

Java ile yazılmış Memcached server'larına bağlanmaya yarayan client projesi

Kaynak

memcached - Dağıtımlı (distributed) önbellek sistemi

ilkinbalkanay.blogspot.com sitesindeki Memcached hakkında bilgi sağlayan yazı.

Kaynak

PHP İçin Memcache Manual'i

Memcached'in Linux üzerinde kurulması ve PHP ile kullanılması için gerekli bilgilerin anlatıldığı yardım sayfaları

İpucu

Memcached Server Çalıştırılması

Memcached aşağıdaki gibi çalıştırılmaktadır : 

# ./memcached -d -m 2048 -l 192.168.43.47 -p 11211

Bu komutta verilen parametre değerleri aşağıdaki gibidir : 

-d : deamon olarak çalış. (deamon : akra planda çalışacak process/uygulama)
-m 2048  : En fazla 2 GB Ram
-l 192.168.43.4 7: Çalıştığı server'ın IP'si
-p 11211: çalıştığı port

Not : Yukarıdaki bilgi için http://ilkinbalkanay.blogspot.com/2008/02/memcached-datml-distributed-nbellek.html sitesinden yararlanılmıştır. 





Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir