Seit einiger Zeit mache ich so meine Erfahrungen mit Hochlast-Webseiten.

Wenn man sich so die ein oder anderen bereits verfügbaren Hochlast-Webseiten anschaut, und man berichte
über deren Serverstruktur ließt, sieht man meist einen Service namens “Memcached”.
Der “Memcached” ist ein Service welcher seine Daten komplett im Speicher liegen hat, sofern nicht vom System her geswappt wird.

Die Daten werden wie in einem Array anhand eines angegebenen Keys abgespeichert – Bei bedarf auch nur für eine bestimmte dauer.

Man kann sich vorstellen, dass dies in vielen fällen wesentlich schneller geht, als über eine normale Datenbank.

Aber nicht nur das. PHP bestitzt auch die Möglichkeit die Sessiondaten in einem Memcached-Service abzuspeichern. Vorbei ist es mit dem elendigen rumwühlen auf der Platte, nur damit PHP ausgeben kann was in dem Warenkorb des Users X liegt. Auf Hochlast-Webseiten mit tausenden von Session-Files ist die Option mit dem Memcached nicht nur die schnellere sondern auch die klügere Variante ;-)

Neben den vielen Vorteilen, bringt der Memcached-Service aber auch einen Nachteil mit sich. Aus Performancegründen gibt es keine eingebauten Sicherheitsmechanismen. Der Service sollte also entweder nur auf Localhost lauschen, oder durch eine Firewall gesichert werden.

Zusätzlich sollte man die Keys nicht einfach bennen nach “SQL-Statement 1″ usw. sondern das SQL-Statement mit MD5 hashen und den Hashwert dann als Key nutzen. Das hat vorallem auch den Vorteil das man die Maximale länge eines Keys nicht überschreitet und plötzlich sehr seltsame ergebnisse erhält.

Je nachdem wie performant die Server selbst alle laufen, und wie die Netzwerk-Architektur aussieht, kann ein Memcached-Service den Webseiten auf jedenfall ordentlich auf die Sprünge helfen.

Money

Hinterlasse einen Kommentar