Nachdem ich nun immer wieder auf memcached gestoßen bin und den Einsatz sehr sinnvoll finde, schreib ich hier mal ein paar Zeilen darüber und gebe einen kurzen Überblick wie man diesen einsetzt.

Bei memcached handelt es sich um einen sehr effizienten caching deamon, sprich ein Hintergrunddienst der Daten zwischenspeichert und somit schnell wieder zur Verfügung stellt. Interessant ist das besonders für Webapplikationen, die sich so Datenbankzugriffe sparen können und damit effizienter werden, d.h. weniger Traffic benötigen und schneller sind. Eine Anwendung prüft also, bevor sie einen Datenbankzugriff startet, ob die Daten im Cache liegen und holt sich diese ggf. von dort. Liegen die Daten nicht im Cache, so wird der Datenbankzugriff ausgeführt und anschließend im Cache gespeichert, wobei genau festgelegt werden kann wie lange die Daten dort vorgehalten werden. Ein Beispiel ist deviantphoto.eu. Hier wird nicht bei jedem Aufruf ermittelt, welche Bilder nun zuletzt hochgeladen wurden, sondern erst im Cache nachgesehen ob die letzten Bilder bereits vorliegen. Der Cache wird dann, beim Hochladen eines neuen Bildes geleert.

Dabei gibt es für die verschiedensten Programmiersprachen Bibliotheken, mit deren Hilfe man auf den Memcache zugreifen kann. Als Beispiel wird hier der Einsatz in PHP gezeigt, ebenso ist dies auch mit Perl usw. möglich. Weitere Voraussetzung ist natürlich, das auf dem Webserver memcached läuft. Unter danga.com/memcached kann man sich den deamon herunterladen (für Windows gibt es ihn unter jehiah.cz), wobei sich dieser als kleines, leichtgewichtiges Programm präsentiert (sprich starten und fertig).

Folgendes PHP Beispiel zeigt wie man memcached dann nutzen kann:


<?PHP
// neues Memcache Object erzeugen
$mCache = new MemCache();

// Memcache Server bekannt machen
$mCache->addServer(new MemCacheServer('127.0.0.1', 11212));

// hier ein Beispielobjekt zum speichern
$testObject = 'Thats a test';

// schreibt das Beispielobjekt in den Cache
$mCache->set('testkey', $testobject);

// Beispielobjekt wieder vom Cache holen
$storedObject = $mCache->get('testkey');

// und ausgeben
echo $storedObject;

// und wieder loeschen
$mCache->delete('testkey');

// Beispielobjekt wieder in Cache laden
// (wird nach 10 Sekunden wieder aus Cache entfernt)
$memcache->set('key', $testObject, false, 10);
?>

Weitere Informationen zur Nutzung sowie eine Beschreibung der Bibliothek in PHP sind hier zu finden: http://de2.php.net/memcach wobei zu beachten ist, dass vor Nutzung ein PECL Package installiert werden muss. Für Perl steht ein CPAN Modul zur Verfügung.

Hinterlasse eine Antwort