Memcached on apache2&php

Őszintén szólva eddig féltem a témától, mint a tűztől. Plusz egy különálló process, kitudja mennyire stabil, ha leáll gáz van és stb. Aztán most, hogy az egyik projektben a munkaadóm már hetek óta hajtogatta, hogy szükség lesz rá, mert gyorsabb, mint a HDD-s cache úgy döntöttem, hogy szabad óráimban felteszek egy linuxot vm-be és próbálkozok.

memcached

Felvetődhet a kérdés, hogy miért is jó ez. Egyszerűen szólva a  Memcache nagy előnye, hogy közvetlenül a memóriában tárolja az adatokat, ami a lehető leggyorsabb módszer az adatok elérésére – írására és olvasására.

 

Tehát az alábbi néhány egyszerű lépéssel végeztem el a telepítést:

apt-get install memcached

Telepítés után megnyitjuk a konfigurációt és megnöveljük a használható megabájtokat. 128 helyett lehet több és kevesebb is, én például 256-ot állítottam be:
nano /etc/memcached.conf

-m 64 sort írjuk át erre: -m 128

Aztán memcache újraindítás:
service memcached restart

php5-be „beépítjük” a memcache-t:
apt-get install php5-memcached

Apacs’ restart és készen is vagyunk:
service apache2 restart

 

Aztán egy php fileba toljuk be ezt:

<?php
$mc = new Memcached();
$mc->addServer(„127.0.0.1”, 11211);

$mc->set(„testkey”, „Mindenki örül, működik a memcache! :)”);
print $mc->get(„testkey”);

 

Ha futtatás után azt látjuk a képernyőn, hogy „Mindenki örül, működik a memcache! :)” akkor már végeztünk is.

A mellékelt kódsorok alapján láthatjuk, hogy OOP szintű a dolog, set-get a beírás és kiolvasás. Kulcs-értékpárokkal dolgozunk, tehát a key az lényegében a kulcs, azonosító – a set második paramétere (value) pedig maga a felvitt adat.

Fontos még megjegyeznem, hogy vannak esetek amikor szeretnénk, hogy egy felvitt adat egy idő után lejárjon. Először ezt manuálisan akartam megoldani, így hosszasan keresgéltem modify/set date után unix időben, de aztán rájöttem, hogy a megoldás sokkal egyszerűbb: a set metódus harmadik paramétere egy integer, ami default 0 – ez állítja be az adat timeout-ját. Tehát ha beállítunk egy >0 értéket akkor a rögzített adat annyi ideig lesz érvényes, utána automatikusan megsemmisül. Így a szemétgyűjtést nem valós időben kell végeznünk, mint a file szintű cache-nél, kódunk ezért is gyorsabb lesz (hurrá!).

 

Memcache admin/stat felület

Jó kis statisztikás app készült hozzá, amit elég kicsomagolnunk és bemásolnunk valahova, majd böngészőben a szerverről megnyitni. Letölthető innen!

Szólj hozzá!