Linux.memcached: Unterschied zwischen den Versionen
Zeile 11: | Zeile 11: | ||
systemctl enable memcached | systemctl enable memcached | ||
systemctl start memcached | systemctl start memcached | ||
=== Test === | === Test === | ||
Zeile 21: | Zeile 20: | ||
# | # | ||
VERSION 1.4.2 | VERSION 1.4.2 | ||
==== Mehr als nur lokalen Zugriff erlauben ==== | ==== Mehr als nur lokalen Zugriff erlauben ==== |
Version vom 19. November 2014, 12:23 Uhr
der Linux Server Dienst "memcache" bietet eine Semi-Persistente Speicherung an. Die speicherbaren Key / Value Paare bleiben erhalten bis der Memcache-Server neu gestartet wird. In meinem Fall connectiere ich mit PHP auf diesen Server um eine Round-Robin Sequenz für den TWebShop zu speichern. Darüber wählen alle beteiligten laufenden WebShop-Forks einen der laufenden XMLRPC Dienste aus.
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
Werte
sequence.69VVTGKZ1
Die Round-Robin-Sequenz des TWebShop