Memcached Nedir ve Neden Kullanılır?
Öncelikle, Memcached'in ne olduğunu ve neden bu kadar popüler olduğunu anlamak önemlidir. Memcached, verileri geçici olarak bellekte tutarak veri erişim sürelerini hızlandırmaya yarayan bir bellek içi (in-memory) cache sistemidir. Özellikle dinamik web uygulamalarında, veritabanı sorgularının veya API isteklerinin sıklıkla tekrar ettiği durumlarda, Memcached devreye girer ve hızlıca yanıt verir.
Memcached’in kullanım alanları: Web sitelerindeki sık kullanılan verilerin önbelleğe alınması, büyük veri setleriyle çalışan uygulamalarda hız optimizasyonu ve genellikle veritabanı sorgularının hızlandırılması gibi durumlar.
Adım 1: Memcached Kurulumu
Memcached, Linux üzerinde kurulum için oldukça basit bir yazılımdır. Çoğu Linux dağıtımında paket yöneticisi üzerinden kolayca yüklenebilir. Şimdi, adım adım kurulumun nasıl yapılacağını görelim.
Eğer Ubuntu veya Debian kullanıyorsanız, terminali açıp şu komutu çalıştırarak Memcached’i kurabilirsiniz:
sudo apt-get update
sudo apt-get install memcached
Eğer CentOS veya Red Hat tabanlı bir sistem kullanıyorsanız, aşağıdaki komutla kurulumu gerçekleştirebilirsiniz:
sudo yum install memcached
Bu işlemle Memcached sunucusu yüklenmiş olacak.
Adım 2: Memcached Konfigürasyonu
Kurulum tamamlandıktan sonra, Memcached’in yapılandırılabilir birçok parametresi olduğunu bilmelisiniz. Ancak, genelde en önemli ayar, hafızaya tahsis edilecek bellek miktarıdır. Varsayılan olarak, Memcached çok fazla bellek kullanmaz, bu yüzden ihtiyacınıza göre bunu ayarlamak önemlidir.
Konfigürasyon dosyasını düzenlemek için aşağıdaki komutla dosyayı açabilirsiniz:
sudo nano /etc/memcached.conf
Burada dikkat etmeniz gereken birkaç satır şunlardır:
- -m 64: Bu satır, Memcached’e ayrılacak bellek miktarını belirler. Bu örnekte 64MB ayarlanmış. Yani, daha fazla bellek kullanmak isterseniz, bu değeri artırabilirsiniz. Örneğin, 1GB bellek için `-m 1024` yazabilirsiniz.
- -l 127.0.0.1: Bu, Memcached sunucusunun yalnızca localhost üzerinden erişilebilir olmasını sağlar. Eğer uzak sunuculardan da erişim istiyorsanız, burada `0.0.0.0` veya sunucunuzun IP adresini kullanabilirsiniz.
- -p 11211: Bu, Memcached’in dinleyeceği portu belirler. Varsayılan olarak 11211’dir.
Yapılandırma dosyasını düzenledikten sonra, dosyayı kaydedip çıkın ve Memcached’i yeniden başlatın:
sudo systemctl restart memcached
Memcached’i otomatik olarak başlatmak için şu komutu kullanabilirsiniz:
sudo systemctl enable memcached
Adım 3: Memcached’in Çalışıp Çalışmadığını Kontrol Etme
Kurulum ve yapılandırma işlemi bitti. Peki, Memcached gerçekten çalışıyor mu? Bunu kontrol etmek için şu komutu kullanabilirsiniz:
telnet 127.0.0.1 11211
Eğer bağlantınız başarılı olduysa, aşağıdaki gibi bir ekran görmelisiniz:
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Başka bir seçenek ise `memcached` komutunu çalıştırarak Memcached durumunu kontrol etmektir:
memcached -h
Adım 4: Memcached Performansını Artırmak İçin İpuçları
Evet, Memcached’i kurduk ve çalışır hale getirdik. Şimdi, verimliliği artırmak için birkaç ipucu:
1. Daha Fazla Bellek Ayarlayın: Memcached’in daha fazla veri depolamasını istiyorsanız, daha fazla bellek tahsis edebilirsiniz. Ancak, sunucunuzun fiziksel belleği de sınırlı olduğu için aşırıya kaçmamak önemli.
2. Daha Fazla Sunucu Kullanmak: Eğer Memcached’i yüksek trafikli bir uygulama için kullanıyorsanız, birden fazla Memcached sunucusu kullanmayı düşünebilirsiniz. Bu şekilde yük dengelemesi yaparak veritabanı üzerindeki baskıyı azaltabilirsiniz.
3. Cache Süresini Ayarlayın: Cache’deki verilerin ne kadar süreyle kalacağını ayarlamak, uygulamanızın performansı için çok önemlidir. Çok kısa süreli cache’ler, sürekli sorgulama yapmanıza neden olabilirken, çok uzun süreli cache’ler ise gereksiz veri birikmesine yol açabilir.
Adım 5: Memcached’i Test Etme
Son olarak, Memcached’i test etmek için basit bir komut yazalım. Öncelikle, terminal üzerinden aşağıdaki komutla bir değer ekleyelim:
echo "set foo 0 900 3" | nc 127.0.0.1 11211
Bu komut, `foo` isminde bir anahtar değeri ekler. Ardından, bu değeri şu şekilde alabilirsiniz:
echo "get foo" | nc 127.0.0.1 11211
Eğer her şey doğru çalışıyorsa, şu şekilde bir yanıt almanız gerekir:
VALUE foo 0 3
bar
END
Artık Memcached sunucunuz hazır ve verilerinizi hızlı bir şekilde önbelleğe alabilirsiniz!