Darkdream
Registered User
Wie der Titel schon sagt geht es um die Installation von memcached. Memcached ist ein Caching System, man setzt es ein um die Performance von Dynamischen Seiten zu steigern. Es wird hierfür eine Art Ramdrive angelegt, wo die gecachten Objekte gespeichert werden. Ich habe per Google nicht wirklich brauchbare Informationen dazu gefunden, also hab ich mir gedacht ich schreib einmal ein HowTo (mein Erstes übrigens, bin also für konstruktive Kritik gerne zu haben).
Memcached braucht als Voraussetzung libevent. Falls ihr das schon installiert habt, könnt ihr diesen Punkt überspringen.
Wenn make verfiy überall mit OKAY durchläuft dann hat es bei der Installation keine Fehler gegeben. Wenn ihr Fehler hattet --> Google oder Dokumentation von LibEvent
Jetzt gehts an die eigentliche Installation von Memcached.
Eigentlich sollte Memcached nun Einsatzbereit sein, jedoch bei mir war der Fehler, dass die LibEvent Libary nicht gefunden werden konnte. Also müssen wir Memcached noch dazu bringen, dass es uns sagt wo es nach den Libaries sucht. Dies geschieht mit:
Danach die libevent-1.2a.so.1 einfach in einen der Ordner kopieren. Bei mir war das Problem mit einem
gelöst.
Der letzte Schritt ist das Starten von Memcached. Memcached läuft nicht unter root. Also einfach einen neuen Benutzer mit yast (Suse), adduser (debian) oder einfach mit dem allgemeinen Befehlt useradd anlegen.
Gestartet wird Memcached nun folgendermaßen:
Zur Erklärung der Parameter:
-m Größe des Caches im Arbeitsspeicher in MB
-l IP auf der der Daemon lauschen soll
-p Port auf dem gelauscht werden soll
-u Der Username mit dem der Daemon gestartet werden soll. Beachtet, dass wenn ihr den User schon gewechselt habt (also nicht mehr als root eingeloggt seid) braucht ihr den -u USERNAME Teil nicht mehr.
Nachdem ihr jetzt keine Fehlermeldungen bekommen habt, ist Memcached einsatzbereit
Jetzt stellt sich nur noch die Frage, wie man dieses kleine aber feine Tool verwendet.
Vorher:
Quelle: Wikipedia
Nacher:
Quelle: Wikipedia
-- EOF --
Memcached braucht als Voraussetzung libevent. Falls ihr das schon installiert habt, könnt ihr diesen Punkt überspringen.
Code:
cd /usr/src/
wget http://www.monkey.org/~provos/libevent-1.2a.tar.gz
tar xzvf libevent-1.2a.tar.gz
cd libevent-1.2a
./configure && make && make install
make verify
Jetzt gehts an die eigentliche Installation von Memcached.
Code:
cd /usr/scr/
wget http://www.danga.com/memcached/dist/memcached-1.2.1.tar.gz
tar xzvf memcached-1.2.1.tar.gz
cd memcached-1.2.1/
./configure && make && make install
Eigentlich sollte Memcached nun Einsatzbereit sein, jedoch bei mir war der Fehler, dass die LibEvent Libary nicht gefunden werden konnte. Also müssen wir Memcached noch dazu bringen, dass es uns sagt wo es nach den Libaries sucht. Dies geschieht mit:
Code:
LD_DEBUG=libs memcached -v
Code:
cp /usr/local/lib/libevent-1.2a.so.1 /usr/lib/libevent-1.2a.so.1
Der letzte Schritt ist das Starten von Memcached. Memcached läuft nicht unter root. Also einfach einen neuen Benutzer mit yast (Suse), adduser (debian) oder einfach mit dem allgemeinen Befehlt useradd anlegen.
Gestartet wird Memcached nun folgendermaßen:
Code:
./memcached -d -m 2048 -l 123.123.123.123 -p 11211 -u USERNAME
Zur Erklärung der Parameter:
-m Größe des Caches im Arbeitsspeicher in MB
-l IP auf der der Daemon lauschen soll
-p Port auf dem gelauscht werden soll
-u Der Username mit dem der Daemon gestartet werden soll. Beachtet, dass wenn ihr den User schon gewechselt habt (also nicht mehr als root eingeloggt seid) braucht ihr den -u USERNAME Teil nicht mehr.
Nachdem ihr jetzt keine Fehlermeldungen bekommen habt, ist Memcached einsatzbereit
Jetzt stellt sich nur noch die Frage, wie man dieses kleine aber feine Tool verwendet.
Vorher:
PHP:
function get_foo (int userid) {
result = db_select("SELECT * FROM users WHERE userid = ?", userid);
return result;
}
Nacher:
PHP:
function get_foo (int userid) {
result = memcached_fetch("userrow:" + userid);
if (!result) {
result = db_select("SELECT * FROM users WHERE userid = ?", userid);
memcached_add("userrow:" + userid, result);
}
return result;
}
-- EOF --
Last edited by a moderator: