Memcached açık kaynaklı dağıtılmış bir önbellekleme sistemidir. Veritabanı yükünü azaltarak dinamik web uygulamalarını hızlandırmak için kullanılır . Başka bir deyişle, her veritabanı talebi yapıldığında sunucuya ek yük ekler. Memcached, veri nesnelerini dinamik bellekte depolayarak yükü azaltır (uygulamalar için kısa süreli bellek olarak düşünün). Memcached, verileri küçük dizeler veya nesneler için key/ value çiftlerine dayalı olarak depolar:
- Veritabanı çağrılarının sonuçları
- API çağrıları
- Sayfa oluşturma
Memcached dört ana bileşenden oluşur. Bu bileşenler, önbelleğe alınmış verileri mümkün olduğunca verimli bir şekilde sunmak için istemci ve sunucunun birlikte çalışmasına olanak tanır:
- İstemci yazılımı : Kullanılabilir Memcached sunucularının bir listesi verilir
- İstemci tabanlı karma algoritma : “key” temel alınarak bir sunucu seçer
- Sunucu yazılımı : Değerleri ve key’leri dahili bir karma tabloya kaydeder
- LRU : Eski verilerin ne zaman atılacağını veya belleğin ne zaman yeniden kullanılacağını belirler
Memcached nasıl çalışır?
Yukarıda belirtildiği gibi, Memcached dört ana bileşenden oluşur ve bu bileşenler veri depolamasına ve almasına izin veren unsurlardır. Her bir öğe key ve son kullanma süresi ve ham veriden oluşur . Üst düzeyde Memcached aşağıdaki gibi çalışır:
- İstemci, Memcached’in önbellekte saklanıp saklanmadığını görmek için kontrol ettiği bir veri parçası ister.
- Burada iki olası sonuç vardır:
- Veriler önbellekte saklanıyorsa: verileri Memcached’dan döndürür (veritabanını kontrol etmenisine gerek yoktur).
- Veriler önbellekte saklanmazsa: veritabanını sorgular verileri alır ve daha sonra Memcached’da saklar.
- Bilgi değiştirildiğinde veya bir öğenin son kullanma tarihi dolduğunda, Memcached istemciye yeni içerik iletilmesini sağlamak için önbelleğini günceller.
Tipik bir kurulum çeşitli Memcached sunucularına ve birçok istemciye sahiptir. İstemciler hangi Memcached depolama sunucusunun kullanılacağını belirlemek için bir karma bir algoritma kullanır bu yükün dağıtılmasına yardımcı olur. Sunucu daha sonra karşılık gelen değeri dahili bir karma tablosunda nerede saklayacağını belirlemek için ikinci bir key karmasını hesaplar. Memcached mimarisi hakkında birkaç önemli nokta :
- Veriler yalnızca bir sunucuya gönderilir.
- Sunucular veri paylaşmaz.
- Sunucular değerleri RAM’de tutar. RAM biterse en eski değer atılır.
Yorum Yap