Memcached yoğun sunucular için önemli bir performans iyileştirme aracı olarak kullanılabilen bir uygulama. Aslında temel olarak yaptığı şey key-value olarak saklanan verileri RAM üzerinde tutarak istendiği zaman çok hızlı bir şekilde bu verileri getirebilmesi. Facebook’ta kullanılan memcached birçok web uygulaması için de vazgeçilmez bir caching aracıdır.
Bildiğiniz üzere PHP sessionları ya bir klasörde dosya olarak ya da veritabanında saklanabilmektedir. Özellikle çok kullanıcılı sistemlerde session verilerini RAM üzerinde tutmak belli oranda perfomans sağlayabilir. Sessionları RAM üzerinde tutabilmek için de Memcached’den faydalanabiliriz. Tabii session datalarının RAM üzerinde tutulması, olası bir problem sonrasında RAM deki verilerin tamamen yok olma riskini de kabul etmeyi gerektiriyor.
İşin analiz ve değerlendirme kısmını bir kenara bırakıp, teknik olarak bunu nasıl yapabileceğinizi aktarayım. Burada anlatacaklarım Debian Etch üzerinde Apache2-PHP5 kurulu bir ortamda test edilmiştir ancak Debian temelli herhangi bir sunucu için de aşağı yukarı aynı şekilde kurulum yapılabilir.
Öncelikle memcached kuralım ve başlatalım :
sudo apt-get install memcached /etc/init.d/memcached start
Sonrasinda PHP’nin memcached ile iletişimini sağlayacak modülü kuralım.
sudo apt-get install php5-memcache
Bundan sonra da PHP’nin session yönetiminde session’a atanan değerlerin memcached’e gönderilmesi konusunda yardımcı olacak pecl paketini kuruyoruz.
pecl install pecl/memcache
Kurulum esnasında gelecek aşağıdaki soruya evet diye cevap veriyoruz.
Enable memcache session handler support? [yes] : yes
En sonunda php.ini dosyasınızda session yönetimi ile ilgili satırları aşağıdaki gibi değiştirmeniz gerekiyor.
session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15"Eğer aşağıdaki satır otomatik olarak eklenmemişse php.ini dosyasının sonuna aşağıdaki satırı eklemeniz de memcache kullanabilmek için gerekmektedir.
extension=memcache.sophp.ini dosyasında hem memcache hem de memcached ile session yönetimi konusunda yapılabilecek ekstra ayarlar da mevcuttur. Bunlardan birisi memcached’e erişim konusunda anlık yaşanabilecek problemler için bir timeout süresinin belirlenerek sessionlar için kullanılabilecek ikinci bir memcache sunucusuna yönlendirilmesidir. Bir diğeri memcached’in kendi konfigürasyonu ile ilgili ayarlardır. Bunlar ihtiyaca göre değişiklik gösterebilecek konular olduğu için bu konular isteğe göre değiştirilebilir.
Son Yorumlar