Session-Handling mit Memcached
Posted on Mai 11 in PHPby Marcel PociotPrint
Sessions begegnen uns in PHP jeden Tag.
Über die Geschwindigkeit machen wir uns dabei eher selten Gedanken, doch gerade bei Webseiten mit viel Traffic erzeugen Sessions viele Dateizugriffe die unnötige sind.
Doch wie soll man das Problem umgehen?
Mit dem Memcached Server bekommen die Entwickler einen Server in die Hände gelegt, der es ermöglicht Daten in dem Arbeitsspeicher des Servers zu schreiben.
Das Prinzip von Memcached ist denkbar einfach – ein bestimmter Teil des Arbeitsspeichers wird reserviert und über einen kleinen Server können dort Daten abgelegt und ausgelesen werden.
Was dort gespeichert wird, ist prinzipiell egal. Man kann also nicht nur seine Sessions sondern zum Beispiel auch MySQL Resultate in Memcached speichern.
Doch warum sollte ich meine Session im Arbeitsspeicher ablegen?
Memcache macht nicht für jede Seite Sinn. Wenn man täglich 50 Besucher hat wird die Festplatte wohl kaum Probleme bekommen für diese 50 Besucher die Session aus der Festplatte auszulesen.
Wenn es allerdings einige Tausend Besucher werden hat die Festplatte schon etwas mehr zutun und blockiert so möglicherweise andere wichtige I/O Prozesse.
Hier kommt nun Memcached ins Spiel.
Memcached installieren
Zu allererst braucht man natürlich einen Memcached Server.
Auf einem Debian basierten System kann man diesen mit dem Befehl
apt-get install memcached
installieren.
Danach sollte man einen Blick in die Konfigurationsdatei werfen. Diese findet man unter /etc/memcached/memcached.conf
Standardmäßig erlaubt Memcached nur Zugriffe von localhost. Sofern man also keinen eigenen Memcached-Server betreiben will ist das auch in Ordnung so.
Nachdem man die Konfigurationsdatei den eigenen Bedürfnissen angepasst hat muss der Server noch gestartet werden.
/etc/init.d/memcached start
Der Server läuft also und wartet brav auf Daten die er speichern oder abrufen soll. Was fehlt uns also noch?
Genau , der Memcache PHP Client.
Um diesen zu installieren gibt es zwei Möglichkeiten.
Entweder via apt-get / aptitude / etc. :
apt-get install php5-memcache
Oder via PEAR:
pear install pecl/memcache
Freundlicherweise wird man direkt gefragt ob man Memcache fürs Session-Handling nutzen möchte:
Enable memcache session handler support? [yes] : yes
Jetzt müssen wir in der php.ini noch das memcache Modul aktivieren:
extension=memcache.so
So! Das wars auch schon – jetzt kann memcache genutzt werden.
Um jetzt PHP mitzuteilen das wir die Session im Memcache Server ablegen möchten, gibt es die nützliche Einstellung session.save-handler
Der save-handler für memcache sieht so aus:
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
Danach muss nur noch der Apache Server neu gestartet werden und wir sind fertig.
Viel Spass beim optimieren.
Popularity: 100% [?]








4 Comments
Trackbacks / Pingbacks
PillSpot.org. Canadian Health&Care.Special Internet Prices(up to 40% off average US price).No prescription online pharmacy.Pillspot.org. Herbal-supplements@buy.online” rel=”nofollow”>.< /a …
Categories: Cholesterol.Pain Relief.Eye Care.Blood Pressure/Heart.Womens Health.Mens Health.Stomach.Vitamins/Herbal Supplements.Weight Loss.General Health.Antiviral.Mental Health/Epilepsy.Antidepressants.Anti-allergic/Asthma.Skin Care.Stop Smoking…
Camera http://pwidebfcl.AUTOSECTIONS.INFO/tag/Digital+for+Camera/ : Digital…
Camera…
Buy:Tramadol.Viagra Professional.Cialis Super Active+.Super Active ED Pack.Propecia.VPXL.Viagra.Viagra Super Active+.Levitra.Cialis.Cialis Professional.Viagra Super Force.Cialis Soft Tabs.Maxaman.Zithromax.Soma.Viagra Soft Tabs….
car http://m6l.5so.ii99.vg : amplifiers…
amplifiers…