Lecza István (Isu)

My developer life, CV and others...

április 15 15:35:10, 2009

Nagy terhelésű renszerek fejlesztése során, gyakran gyűlik meg a bajunk az adatábzisterheléssel, melynek csökkentésére több eszköz is rendelkezésünkre áll. Az egyik ilyen eszköz a Memcache. Alább olvasható a Memcache lényege, telepítése, működése.

MI AZ A MEMCACHE?

A Memcache arra való, hogy adatokat (változókat) tároljon meghatározott ideig a szerver memóriájában, melyet a megadott ideig bármikor el is érhetünk. A jelentősége mégis akkor a legnagyobb, ha nagy látogatottságú oldalnál, erőforrást szernénk megtakarítani illetve a kiszolgálást szeretnénk gyorsítani.

TELEPíTÉS

Először is egy Memcachedet kell telepítenünk, elindítanunk, majd hozzá a PHP5 modult.

A Memcached telepítése:

apt-get install memcached

A Memcached daemon indítása:

memcached -d -m 256 -u root -l 127.0.0.1 -p 11211

A PHP5 modul telepítése:

apt-get install php5-memcache

Majd a legvégén Apache újraindítás:

/etc/init.d/apache2 restart

a memcache használata

Az alábbi példa a következő feladatot látja el:

Adott egy tömb, melyet adatbázis lekérdezés eredményéből állítottunk össze. A tömböt memóriába tesszük 60 másodperces élettartammal. Amíg ez az idő le nem telik, a memóriában lévő adatokkal dolgozunk.

$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Nem lehet kapcsolódni");
if ($get = $memcache->get("valtozoNev")) {
    echo "nincs sql lekérdezés";
    print_r($get);
} else {
    echo "van sql lekérdezés";
    $adat = Array(); // SQL
    $memcache->set('valtozoNev', $adat, false, 60) or die ("NemSikerült elmenteni");
    print_r($adat);
}
$memcache->close();


A Memcache alapja nagyjából ennyi.

HOZZÁSZÓLÁS, VÉLEMÉNYEK

Ennek örülök, volt haszna is cikk megírásának :)
2011-05-18 10:29:51
Köszi, közben sikerült a cikked alapján megoldani a problémát.
Külföldi fórumokon keresgéltem, de itt találtam meg a megoldást.

Hasznos cikk ;)
2011-01-02 04:50:24
Sziasztok!
Nekem van egy memcache elindítási problémám:

can't run as root without the -u switch

akárhogy próbálom elindítani, mindig ezt a hibát írja ki :(
2011-01-02 04:47:57
* Név
* E-mail
Weboldal, blog
* Hozzászólás
* Biztonsági kód
* A "Weboldal, blog" mező kivetélével minden mező kitöltése kötelező!