Spontánně se tu rozšiřuje seriál, jak nainstalovat linuxové nástroje pod Windows. Tentokrát se mrkneme na Memcached – kešovací systém, používaný často třeba v kombinaci s PHP pro urychlení dynamických webových aplikací a hlavně ulehčení obvykle přetížené databázi. Více o Memcached a o tom, proč ho používá třeba YouTube, Facebook, Twitter, Wikipedia a další si můžete přečíst někde jinde. Tady půjde o jeho zprovoznění. Nebudu zde popisovat postup pro Linux, který je ale dost podobný. Na závěr se mrkneme i jak to celé rozchodit v PHP.
V celé věci není žádná věda. Memcached je démon, který vlastně potřebuje vesměs jen spustit. Nejnáročnější na celém procesu je asi najít jeho verzi pro Windows. Nejjednodušší je samozřejmě stáhnout rovnou binárnky, ale pro přátele kompilování jsou k dispozici i zdrojové kódy.
Následně:
- Rozbalte soubory do adresáře, kde chcete Memcached provozovat (třeba
C:\mecached). Zabalené to má méně než 300kB, takže o místo na disku nemusíte mít strach. - Z příkazové řádky spusťte ve vybraném adresáři
memcached.exe -d install. Na první pohled to nemělo valného vlivu na vybalené soubory. - Pak to celé nastartujete takhle
memcached.exe -d start. Implicitně běží na portu 11211 a maximální paměťové nároky jsou 64MB (změnit se dá parametrem -m). Pro výčet možných parametrů doporučujimemcached.exe -h.
Hotovo, Memcached by měl běžet. Teď ještě jak ho propašovat do PHP. Předně je třeba povolit (případně doinstalovat) rozšíření php_memcache.dll v php.ini. Často stačí jen odkomentovat řádku:
extension=php_memcache.dll
Následně restartovat server a zkontrolovat, že PHP začalo brát existenci Memcache extenze na vědomí. Kontrolu lze provést třeba pomocí phpinfo() pod nadpisem memcache.
Zbývá už jen PHP kód, kterým si můžete ověřit, jestli opravdu všechno funguje tak, jak má:
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Nepodarilo se pripojit k serveru.");
$version = $memcache->getVersion();
echo "Verze Memcached: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Nepodarilo se ulozit data do cache");
echo "Ukladam data do cache (data budou smazana po 10 sekundach)<br/>\n";
$get_result = $memcache->get('key');
echo "Data nactena z cache:<br/>\n";
var_dump($get_result);
Teď už nic nestojí v cestě bleskovému načítání vašich stránek.

nojo, az ted si ctu poradne tvuj blog a polovina veci mi tu prijde jak z marsu;-)