PHP`de MemCached(MemCache) Kurulumu ve Kullanımı

Transkript

PHP`de MemCached(MemCache) Kurulumu ve Kullanımı
PHP'de MemCached(MemCache) Kurulumu ve
Kullanımı
3 Nisan Perşembe ´14
http://selcuk.in/php-de-memcached-memcache-kurulumu-ve-kullanimi.html
MemCached, 2003 yilinda Danga tarafindan LiveJournal icin yazilmis ve halen gelistirilmekte olan acik kaynak,
yüksek performansli sunucu önbellekleme sistemidir. Daha önceki yazilarimda XCache'den bahsetmistim. Bu
konuda XCache bence cok iyi ama bunu da tanitmadan gecemedim. Memcached de ayni XCache gibi
ihtiyaciniz olan dizi, uzun süren mySQL datasini önbellekleyerek daha hizli calismasini saglayan bir sistemdir.
Bu sistemi neredeyse bilinen büyük sitelerin yarisindan fazlasi kullanmaktadir. Wikipedia , Flickr, Twitter,
Youtube bunlardan sadece bir kacidir. Memcached, XCache gibi anahtar ve key sistemi seklinde calismaktadir.
Bu yazimiz da görecegimiz basliklar ise sunlardir; 1. MemCached Kurulumu 2. Anahtar Belirleme 3.
Belirli Anahtara Ulasma Bu basliklarimizi tek tek inceleyip nasil olduklarini görecegiz. Dip Not: MemCached,
TCP/IP üzerinde çalışan bir sunucudur ve kullanilmasindaki amac ise birbirleriyle calisan hibrit sistemlerin ortak
session bilgisi kullanmaktir. Örnek olarak Java ile yazilmis bir uygulamadaki cache edilen bir veriyi PHP de
okuyabiliriz. MemCache ise MemCached sunucuna baglanan ve anlik olarak degerleri gösterebilen sunucu
üstünde islem yapabilen bir kütüphanedir.
1. MemCached Kurulumu
MemCached MemCached kurulumunu linux ve windows platformlari icin kurulumlari söyledir. Linux icin
Kurulum
apt-get install memcached
ve yahut isterseniz PECL ile de kurabilirsiniz.
pecl install memcache
Yüklenen sunucuyu baslatmak icin ise su kodu calistirin.
memcached -d -m 512 -l 127.0.0.1 -p 11211 -u nobody
Windows icin Kurulum Bu adresteki sürümü C sürüsünde memcached dizinine yükleyin ve CMD den su
komutu calistirin.
c:/memcached/memcached.exe
-d install
Yüklenen sunucuyu baslatmak icin ise su kodu calistirin.
c:/memcached/memcached.exe -d
start
2. Anahtar Belirleme
<?php
# PDO, mySQL Baglantisi
try {
$db = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass');
} catch (PDOException $e) {
echo 'Baglanti Hatasi: ' . $e->getMessage();
}
# MemCache ile MemCached Sunucusuna Baglan
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Sunucuya Baglanilamiyor...");
# Üyeler tablosuna baglanip statu 1 olanlari listesini aliyoruz
$uyeler = $db->prepare('SELECT * FROM uyeler WHERE statu = :statu');
$uyeler->bindValue(':statu', 1, PDO::PARAM_INT);
$uyeler->execute();
$uyeler->fetchAll(PDO::FETCH_OBJ);
# Bos bir dizi olusturuyoruz
$veriDizisi = [];
foreach ($uyeler as $uye)
{
# Üyelerin kullanici adini döngüde diziye ekliyoruz
$veriDizisi[] = $uye->kullaniciAdi;
}
# MemCache ile Anahtar Belirliyoruz.
# 1800 sn bazindadir ve 30 dk ya denk gelmektedir.
$memcache->set('uyeKullaniciAdlari', $veriDizisi, false, 1800);
?>
3. Belirli Anahtara Ulasma
<?php
# PDO, mySQL Baglantisi
try {
$db = new PDO('mysql:host=localhost;dbname=dbname', 'user', 'pass');
} catch (PDOException $e) {
echo 'Baglanti Hatasi: ' . $e->getMessage();
}
# MemCache ile MemCached Sunucusuna Baglan
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Sunucuya Baglanilamiyor...");
# Olusturulan Anahtara Ulasma
$uyeKullaniciAdlari = $memcache->get('uyeKullaniciAdlari');
# Anahtar gecerli mi bakalim
if ( $uyeKullaniciAdlari === TRUE )
{
print_r($uyeKullaniciAdlari);
} else {
# Yok ise kullanicilar tanimlamasini tekrar yapalim.
# Üyeler tablosuna baglanip statu 1 olanlari listesini aliyoruz
$uyeler = $db->prepare('SELECT * FROM uyeler WHERE statu = :statu');
$uyeler->bindValue(':statu', 1, PDO::PARAM_INT);
$uyeler->execute();
$uyeler->fetchAll(PDO::FETCH_OBJ);
# Bos bir dizi olusturuyoruz
$veriDizisi = [];
foreach ($uyeler as $uye)
{
# Üyelerin kullanici adini döngüde diziye ekliyoruz
$veriDizisi[] = $uye->kullaniciAdi;
}
# MemCache ile Anahtar Belirliyoruz.
# 1800 sn bazindadir ve 30 dk ya denk gelmektedir.
$memcache->set('uyeKullaniciAdlari', $veriDizisi, false, 1800);
}
?>
Ek Not: MemCached sunucunda en fazla veri saklama boyutu 1 MB'dir. Bundan ötürü cok büyük bir veri
önbellege alinacak ise set edilirken FALSE degeri TRUE olmalidir.
Bu yazı http://selcuk.in/php-de-memcached-memcache-kurulumu-ve-kullanimi.html adresinden indirilmiştir

Benzer belgeler