MemCache arra való, hogy adatokat tároljon, meghatározott módon és ideig. 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.
A képen láthatjuk egy SQL lekérés feldolgozását (Narancs színnel), majd ennek a lekrésnek a tömbösített eredményét már (zölddel) a memcache adja vissza. Az feldolgozásra fordított idő harmadára csökkent, a memória használat is kevesebb. Nem beszélve arról, hogy amit a memcache ad vissza, az nem használja már a MySQL szerverünket.
A működésről röviden
A Memcache képes elmenteni változókat (tömböket, stringeket..), és azokat megőrizni ‘korlátlan’ ideig, vagy az általunk beállított elévülési időig. Teheti mindezt (zlib) tömörítve, vagy anélkül.
A Memcache használatról
Komolyabb erőforrást igénylő folyamatok eredményét letároljuk.
- pl.: egy komolyabb MySQL kérést eredményét feldolgozzuk és a végeredményként kapott tömböt eltároljuk.
Mikor legközelebb szükségünk volna, ennek a műveletnek az elvégzésére, megvizsgáljuk, hogy létezik-e a memcache-ben tárolt változat. Amennyiben ez megvan, úgy ezt használjuk a további feldolgozáshoz, vagyis lekérjük.
Miben áll a Memcache erőssége:
- Memória megtakarítás
- Sebesség, kevesebb idő alatt rendelkezésre állnak a már előzőleg elkészített adataink
- A memcache-ből érkező adatok, nem terhelik az adatbázist
- A használata felgyorsíthatjuk az oldalak kiszolgálását jelentősen
- Rendkívül egyszerű a használata
A Memcache hátrányos ‘tulajdonságai’:
- Sajnos ez nem elérhető alapból
- Felvet néhány biztonsági kérdést az osztott memória használata
Te miért vagy hátrányban, ha Memcache-t akarsz használni:
- Telepítened kell, ami bérelt tárhelyen nem kis csapás
- A magyar tárhely piacon, elég kevés helyen lehet látni ezt a szolgáltatást alapból, pedig érdekük lenne, hogy használják az emberek.
Memcache Telepítés
PHP5, LAMP Debianra
PHP5, WAMP Szerver, Pecl csomagként XAMPP szerverre
Telepítés Ubuntura:
- sudo apt-get install php5-memcache
- sudo /etc/init.d/apache2 restart
- indítás: sudo /etc/init.d/memcached start
- phpinfo megtekint, keres: memcache
- Nekem valamiért nem indult automatikusan így az /etc/rc.local fájba felvettem a képen látható sort, így minden gép induláskor ez is el lesz indítva.
Alap műveletek Memcache-hez:
A letöltésben example.memcache.php néven fut a fájl, de mint láthatod a verziószám kiírása után szándékosan kilép. Töltsd ki rendesen, hogy tesztként használhasd.
//barátod: http://www.php.net/manual/en/book.memcache.php
$memcache = new Memcache;
$memcache->connect(‘localhost’, 11211) or die (“Nem lehet kapcsolódni”);
die(“Szerver verziód: “.$memcache->getVersion());
//adat kérés
$get=$memcache->get(“valtozoNev”);
//több változó
$get=$memcache->get(array(“valtozoNev”, “valtozóNévN”));
//5 másodpercig örizzük meg tömörítés nélkül a $data tartalmát
$memcache->set(‘valtozoNev’, $adat, false, 5) or die (“NemSikerült elmenteni”);
//5 másodpercig örizzük meg tömörítve (zlib) a $data tartalmát
$memcache->set(‘valtozoNev’, $adat, MEMCACHE_COMPRESSED, 5) or die (“NemSikerült elmenteni”);
//létező változó átírása
$memcache->replace(“valtozoNev”, “masikValtozo”, false, 5);
//5 sec múlva töröljük
$memcache->delete(“valtozoNev”, 5);
//minden változót töröl
$memcache->flush();
//kapcsolat lezárása
$memcache->close();
?>
A leírás részeként letölthetsz egy teszt környezetet Memcache-hez, amiben vizsgálhatod az adott adatbázisból történő lekérésekre fordított időt, és memória használatot. A ‘teszt’ környezet Linuxon íródott, de elvileg működni fog Windowson is, ha a readme fájlban találhatók teljesülnek.
nincs kapcsolódó bejegyzés.
0