Memcache bzw. Memcached dient dazu, häufig benutze Daten im RAM zu halten und Mysql-Zugriffe zu sparen. Hier ein einfaches Beispiel, welches auch für die PCTweaks.de-News-Seite benutzt wird:

PHP-Code:
$ergebnis_mem memcache_get($memcache$sid);
        if(!
$ergebnis_mem) {
        
$anfrage mysql_query("SELECT * FROM pctweaks_news WHERE sid = $sid");        
        
$cache mysql_fetch_array($anfrage);
        
memcache_set($memcache$sid$cacheMEMCACHE_COMPRESSED'60');
        
$ergebnis_mem memcache_get($memcache$sid);
        } 
Zuerst wird $ergebnis_mem mit dem Inhalt des Memcaches der jeweiligen ID befüllt. Bleibt die Variable leer (es ist also nichts im RAM) wird die Mysql-Anfrage gestartet, die die Daten holt. memcache_set() packt die Daten mit einer Haltbarkeit von 60 Sekunden in den RAM und speichert sie dabei on-the-fly mit gzip. Danach (und das ist wichtig) wird $ergebnis_mem mit den eben gesetzten Daten gefüttert und steht dann zur Verfügung.

Die 60s können natürlich auch höher gesetzt werden, allerdings muss dann darauf geachtet werden, dass beim ändern eines Eintrags (in diesem Fall einer News) auch das entsprechende Memcache-Item aktualisiert wird:

PHP-Code:
$anfrage mysql_query("SELECT * FROM pctweaks_news WHERE sid = $sid");        
        
$cache mysql_fetch_array($anfrage);
        
memcache_replace($memcache$sid$cacheMEMCACHE_COMPRESSED'60'); 
Hier braucht nicht darauf geachtet werden, ob die Daten bereits vorhanden sind, mittels memcache_replace() werden sie sowieso überschrieben.

Als IDs für Memcache werden jeweils die Artikel-IDs (sid) verwendet.