Vesta sunucuda Memcache kurulum ve kullanımı

  2017/02/28 13:11 • Ana Sayfa > PHP

Merhaba! Redis ile ilgili olan makaleme gelen yoğun ilgiden sonra, daha kolay ve stabilize olan Memcache sisteminin vesta control panel üzerinde kurulum ve kullanımını anlatan bir yazı hazırlamak istedim. Bildiğiniz gibi Vesta, Cpanel alternatifi ve ücretsiz, oldukça performanslı ayrıca güvenilir bir sunucuydu. Aylık lisans derdiniz olmadan, vesta ile kolayca sunucu oluşturabiliyor ve sitelerinizi barındırabiliyordunuz.

Memcache nedir?

Okunuşu "memkeş" olan ve sürekli yanlış telaffuz edilen Memcache, veritabanı motorudur. Fakat MySQL'de olduğu gibi ağır ve meşakkatli olmamasının yanısıra, verileri işlemcide değil RAM'de depolar. Büyük firmaların Memcache kullanmasındaki asıl sebep ise, RAM fiyatlarının işlemcilere göre daha ucuz olması ve "tarayıcıya depolama" mantığında çalışan Memcache'in normalden kat be kat hızlı sonuç vermesidir.

Memcache, Facebook HQ tarafından geliştiriliyor. Ayrıca Memcache'i wikipedia, twitter, yandex gibi devasa veri barındıran firmalar kullanıyor. Memcache ile işlem yapmaya gerek duymanız için; öncelikle büyük veri ihtiyacınız olmalı ve sürekli veritabanı bağlantısından kurtulmalısınız.

Memcache mi Redis mi?

Aynı mantığa hizmet etmesine rağmen Memcache oldukça eski, bilinen ve kaynaklanabilir bir yapı. Redis ise, özel geliştiricisi olan RedisLab'ın ürettiği bir sisteme dayanıyor. Redis'in "büyük veriye" odakla daha başarılı olduğunu rahatlıkla söyleyebiliriz, fakat memcache'i kullanan Facebook, Twitter ve Wikipedia gibi örnekleri es geçmemek lazım.

Memcache için gerekenler nedir?

Aşağıdaki kurulumu sorunsuz gerçekleştirmek ve kuruluma başlayabilmek için gerekli olanlar şöyle;

  • İşlem süresince gerekli kafeini ve enerjiyi elde edebilmek için bir fincan kahve.
  • Centos 6.X sunucu
  • Vesta CP kurulu olması (Vesta kurulumu için tıklayın)
  • 15 dakika!

Memcache kurulumuna başlayalım...

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm 

yum update

RPM'i yükledik. Şimdi kuralım.

yum -y install memcached

Şimdi, memcache depolamak için bir ram belirleyelim. Veri boyutunuza göre katlanarak artabilir. Şimdi memcached ayarlarını açıyoruz;

nano -w /etc/sysconfig/memcached

ve içeriğinden CACHESIZE="" kısmını bularak buraya, memcache için ayırmak istediğimiz ram miktarını yazıyoruz. Örn: 512

Daha sonra CRLT + X ve Y + ENTER diyerek düzenleme sayfasını kapatıp işlemlere devam edelim.

Memcache'i çalıştıralım.

/etc/init.d/memcached start

Ayrıca her sistem açıldığında, memcache de açılsın istiyoruz. Reboot & Restart işlemlerinde, memcache'i özellikle açmamak için bir defalığına aktif edelim.

chkconfig memcached on

Büyük kısmı atlattık. Son bir dzüenleme evresi daha kaldı.

nano -w /etc/sysconfig/iptables

Açılan düzenleme penceresinde;

-A INPUT -p tcp -m tcp --dport 8083 -j ACCEPT

satırını buluyoruz ve hemen bir satır altına şunu ekliyoruz;

-A INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT

Daha sonra yine CRLT + X ve Y + ENTER diyerek sayfayı kapatıyoruz. Ayarların çalışması için ise;

/etc/init.d/iptables restart

komutunu kullanıyoruz.

Son olarak modülleri de kurduk mu bitmiştir bu iş!

yum -y install php php-pecl-memcache

yum -y install php php-pecl-memcached

ve server'ı yeniden başlatıyoruz.

/etc/init.d/httpd restart

PHP ile Memcache kullanım evreleri

Türkçe kaynak için PHP.net > Memcache adresini kullanabilirsiniz.

Memcache server'a bağlantı kurma:

 $memcache = new Memcache;
$memcache->connect('IP_Adresiniz', 11211) or die ("Sunucuya Baglanilamiyor...");

Bağlantıyı kontrol edelim. Eğer "Suncuya bağlanılamıyor" hatası geliyorsa, bir sorun var demektir. Kurulum evresini baştan yapmalısınız.

Bağlantı tamam mı? O halde ilk içeriği ekleyelim.

memcache_add($memcache, 'kodlab', 'İçerik Buraya girilecek. Boyut Önemli değil. '.date("d/m/Y H:i:s").'', false, 1800);

Burada, veritabanına "kodlab" anahtarıyla bir içerik ekledik. Ekrana şöyle yazdırması gerekiyor; "içerik buraya girilecek. Boyut önemli değil. 01/01/1970 00:00:00 (güncel tarih)".

Peki bu veriyi ekrana nasıl yazdıracağız?

echo memcache_get($memcache, 'kodlab');

İşte bu kadar basit!

PHP.Net sayfasından, memcache ile ilgili delete, add, flush gibi diğer fonksiyonları görüntüleyebilirsiniz.

Memcache ile ilgili sorularınızı Kodlab'ın yeni Soru & Cevap sayfasından sorarsanız, en kısa sürede yardımcı olacağım!

Yazar: Ercüment Çözer (@Felina)

2009 yılında gelen "internet için bir şeyler üretme isteği" doğrultusunda yazılım öğrenmeye başladım. Aradan geçen süre zarfında başta PHP ve Python olmak üzere, ticareti yapılabilir birçok şey öğrendim. Şu sıralar web ve mobil ortamda kodlama, tasarlama ve pazarlama konularındaki bilgilerimi pekiştirmek ve ihtiyaç halinde diğer insanlara da yardımcı olabilmek için KodLab.org'u kurdum. Freelance olarak kendi projelerimle ilgileniyorum.