Memcached nedir?
Memcached, verileri anahtar-değer çifti olarak bellekte (RAM) tutan basit ve hızlı bir önbellek sistemidir. Uygulamalar pahalı veritabanı sorgularının sonuçlarını burada saklar ve sonraki isteklerde doğrudan bellekten okur. Böylece yanıt süreleri kısalır ve veritabanı yükü azalır.
Memcached veriyi kalıcı olarak saklamaz. Servis yeniden başladığında ya da bellek dolduğunda eski kayıtlar silinir; bu nedenle yalnızca yeniden üretilebilen veri için kullanılır.
Nasıl çalışır?
Sunucu, ayrılan bellek miktarı içinde kayıtları tutar ve bellek dolunca en az kullanılanları (LRU mantığıyla) çıkarır. İstemci kütüphaneleri get ve set gibi basit komutlarla konuşur. Her kayıt için bir geçerlilik süresi tanımlanabilir.
Birden fazla Memcached sunucusu kullanıldığında dağıtım sunucu tarafında değil istemci kütüphanesinde yapılır; anahtar, bir özet fonksiyonuyla belirli bir sunucuya atanır. Sunucular birbirleriyle konuşmaz ve veriyi çoğaltmaz.
Sunucu ve hosting ortamında
WordPress gibi içerik yönetim sistemleri, nesne önbelleği için Memcached ya da Redis kullanabilir. Hosting sağlayıcıları bazı planlarda Memcached hizmetini sunar; sunucu yöneticileri ise paket yöneticisiyle kurar ve bellek sınırını -m parametresiyle belirler. Varsayılan port 11211'dir.
Güvenlik açısından kritik nokta, servisin yalnızca yerel arayüzde dinlemesidir. Geçmişte internete açık Memcached sunucuları, UDP üzerinden yansıtmalı büyük DDoS saldırılarında kötüye kullanılmıştır.