Wiki - Freifunk Pinneberg

Freies WLAN im Kreis Pinneberg

Benutzer-Werkzeuge

Webseiten-Werkzeuge


redis

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
redis [07.01.2017 21:38] havelockredis [03.10.2017 13:51] – [Redis-Server] havelock
Zeile 10: Zeile 10:
 Ein Zugriff von den Knoten oder gar den Clients ist nicht vorgesehen.  Ein Zugriff von den Knoten oder gar den Clients ist nicht vorgesehen. 
  
-Aktuell eingesetzte Version: **3.2.6**+Aktuell eingesetzte Version: **3.2.11**
  
 Der Download der Quellen befindet sich unter: http://redis.io/download/,  Der Download der Quellen befindet sich unter: http://redis.io/download/, 
Zeile 193: Zeile 193:
 </code> </code>
  
-Cluster initialisieren:+Damit die Anzeige von iptables besser lesbar ist, kann die Datei ''/etc/services'' 
 +angepaßt werden: 
 +<file conf /etc/services> 
 +redis           7000/tcp   # Redis server 
 +redis           7001/tcp 
 +redis-cluster   17000/tcp  # Redis cluster bus 
 +redis-cluster   17001/tcp 
 +</file> 
 + 
 +==== Cluster initialisieren ==== 
   * Auf allen beteiligten Servern:<code>   * Auf allen beteiligten Servern:<code>
 /etc/init.d/redis-cluster start /etc/init.d/redis-cluster start
Zeile 231: Zeile 241:
   * ''cluster nodes''   * ''cluster nodes''
   * ''cluster info''   * ''cluster info''
-  * ''cluster failover'' -- Master/Slave tauschen+  * ''cluster failover'' -- Master/Slave tauschen, Befehl auf einem Slave eingeben 
 + 
 +  * ''info server'' -- allg Info zum aktuellen Server 
 +  * ''info replication'' 
 +  * ''info cluster''
  
 ===== Update ===== ===== Update =====
Zeile 246: Zeile 260:
 make install make install
 gem install redis gem install redis
 +/etc/init.d/redis-cluster restart
 +</code>
 +
 +===== Ruby Gems =====
 +
 +Wenn man ''gem install redis'' mehrfach durchgeführt hat, sind nach einiger Zeit unterschiedliche Versionen installiert. Man kann sich das anzeigen lassen:
 +<code>
 +gem list redis
 +</code>
 +Eine alte Version kann gezielt entfernt werden
 +<code>
 +gem uninstall redis --version 3.2.2
 +</code>
 +Ebenso kann man sich eine spezielle Version installieren:
 +<code>
 +gem install redis --version 3.3.5
 +</code>
 +Eine Übersicht über die verfügbaren Versionen kann man erhalten mit:
 +<code>
 +gem list ^redis$ --remote --all
 +</code>
 +
 +====== Cluster Client ======
 +
 +Wenn die Client-Software //nicht// auf einem der Clusterknoten läuft, ist diesem
 +Server die Zugriffsberechtigung mittels Firewallregeln auf allen(!) Clusterknoten
 +zu erteilen.
 +
 +Beispiel für manuelles, nachträgliches EInfügen:
 +<code>
 +iptables -I INPUT <pos1> -s <serverip>/32 -p tcp -m tcp --dport 7000 -j ACCEPT
 +iptables -I INPUT <pos2> -s <serverip>/32 -p tcp -m tcp --dport 7001 -j ACCEPT
 </code> </code>
  
 ===== Python Cluster Client ===== ===== Python Cluster Client =====
 +
 +Basisvoraussetzung:
 +  apt-get install python-hiredis
  
 Um mit dem Cluster zu sprechen, kann man beispielsweise redis-py-cluster verwenden: https://pypi.python.org/pypi/redis-py-cluster/1.3.3 Um mit dem Cluster zu sprechen, kann man beispielsweise redis-py-cluster verwenden: https://pypi.python.org/pypi/redis-py-cluster/1.3.3
-bzw unter https://github.com/Grokzen/redis-py-cluster+bzwunter https://github.com/Grokzen/redis-py-cluster 
 + 
 +Voraussetzung dafür ist redis-py, unter Debian heißt das Paket ''python-redis''
 +Wenn die Geo-Funktionen genutzt werden sollen, muß die neueste Version von Github 
 +verwendet werden. Aus diesem Grund ist in den folgenen Anweisungen auch kein 
 +Checkout für einen Tag angegeben, es wird der Master verwendet (auf eigene Gefahr).
 <code> <code>
-apt-get install python-redis +cd /usr/local/src 
-bzw. für Python3 +git clone https://github.com/andymccurdy/redis-py.git 
-apt-get install python3-redis+cd redis-py 
 +cp -a redis /usr/local/lib/python2.7/dist-packages/ 
 +bzw. für Python 3 
 +cp -a redis /usr/local/lib/python3.4/dist-packages/
  
 cd /usr/local/src cd /usr/local/src
Zeile 289: Zeile 346:
 Es gibt verschiedene Clients, jedoch funktionieren nicht alle mit dem Es gibt verschiedene Clients, jedoch funktionieren nicht alle mit dem
 Cluster. Unter Debian Jessie funktioniert ''libphp-predis''. Cluster. Unter Debian Jessie funktioniert ''libphp-predis''.
 +Um Zugriff auf die Geo-Funktionen zu erhalten, sollte eine aktuelle
 +Version, wie z.B. 1.1.1 installiert werden. Dieses kann z.B. über PEAR
 +(siehe http://pear.nrk.io/) erfolgen.
  
 Beispiel Beispiel
Zeile 295: Zeile 355:
 Predis\Autoloader::register(); Predis\Autoloader::register();
  
-$parameters = ['tcp://gate04.ffpi:7000', 'tcp://gate03.ffpi:7000', 'tcp://gate01.ffpi:7000']; +$parameters = ['tcp://127.0.0.1:7000']; 
-$options = ['cluster' => 'redis'];+$options = ['cluster' => 'redis', 'profile' => '3.2'];
  
 $client = new Predis\Client($parameters, $options); $client = new Predis\Client($parameters, $options);
 +echo "Statistiken\n";
 +echo "Knotenanzahl=". $client->get("nodes:counter:total") . "\n";
 +echo "davon online=".$client->get("nodes:counter:online"). "\n";
 +echo "davon Gates=".$client->get("nodes:counter:gates"). "\n";
 +
 +echo "Geo-Funktionen\n";
 +print_r($client->geopos("nodes:geo", "6466b3c3ac82"));
  
-$value = $client->get('freifunk'); 
-echo "freifunk = ".$value."\n"; 
 </code> </code>
  
  
redis.txt · Zuletzt geändert: 17.07.2021 14:27 von havelock