Linux.memcached: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 94: | Zeile 94: | ||
telnet 10.0.0.2 11211 | telnet 10.0.0.2 11211 | ||
== Alle Werte löschen == | |||
=== via telnet === | |||
flush_all | |||
=== via command-line === | |||
memcflush --servers=localhost:11211 | |||
== Werte == | == Werte == |
Version vom 10. Dezember 2014, 12:41 Uhr
der Linux Server Dienst "memcache" bietet eine Semi-Persistente Speicherung von Key+Value Paaren an. Die Daten bleiben erhalten bis der Memcache-Server neu gestartet wird.
Verwendung
- TWebShop konnektiert mit PHP auf diesen Server um eine Round-Robin Sequenz zur Erhalten. Darüber wählen alle beteiligten laufenden WebShop-Forks einen der laufenden XMLRPC- Dienste aus. Eine faire Lastverteilung wird so erreicht.
XMLSERVER-LaufendeNummer = inc(RoundRobinsequenz) mod XMLSERVER-AnzahlDienste
- Die Funktion XMLRPC.Versandkosten speichert ihr Ergebnis im memcache ab, sobald der Parameter Systemeinstellungen#memcacheHost gesetzt ist.
Installation
Server Dienst
# Vorbereitungen, Memcached, # PHP pecel # zypper install memcached systemctl enable memcached systemctl start memcached
Test
nc localhost 11211 version # # Die Antwort des Servers sollte sein # VERSION 1.4.2
Mehr als nur lokalen Zugriff erlauben
Als default läuft der memcache Server mit einem "-l <IP-Adresse>" Paramter. Zumeist ist eine Beschränkung auf die lokale Maschine gegeben: "-l 127.0.0.1". Um ihn im Netzwerk sichtbar zu machen muss dieser Anteil der Parameter aus dem Programmaufruf entfernt werden.
joe /etc/sysconfig/memcached
# # "" bedeute ALLE Netzwerkinterfaces, Sicherheits-Relevant # MEMCACHED_PARAMS=""
PHP Module
zypper install php5-pear zypper install php5-devel # PHP-Modul Memcache installieren # Es kommt eine Frage, ob memcache so installiert werden soll, # dass Session Variable dort gespeichert werden können, dies # ist für meinen Fall nicht notwendig pecl install memcache # im Verzeichnis /etc/php5/conf.d joe memcache.ini # Datei: /etc/php5/conf.d/memcache.ini # Nur diese Zeile reicht extension=memcache.so # # prüfen + starten rcapache2 restart php --modules
Test Skript
$m = null;
function getSemiPersistenCounter() {
global $m;
if ($m==null) {
$m = new Memcache();
$m->connect("localhost");
$m->add("u-xmlrpc-robin", 0);
}
return $m->increment("u-xmlrpc-robin", 1);
}
Test mit Putty
Mit Putty im Telnet-Modus auf den Host mit dem Port 11211 konnektieren.
version
eingeben oder
incr sequence.69VVTGKZ1 0
telnet 10.0.0.2 11211
Alle Werte löschen
via telnet
flush_all
via command-line
memcflush --servers=localhost:11211
Werte
sequence.69VVTGKZ1
Die Round-Robin-Sequenz des TWebShop