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 [08.01.2017 09:44] havelockredis [03.10.2017 13:57] – [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** 
 + 
 +:!: Die Version 4 werden wir erst einsetzen, wenn die Server auf Debian Stretch (9) gewechselt sind.
  
 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 195:
 </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 243:
   * ''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 262:
 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>
  
Zeile 300: Zeile 348:
 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 306: Zeile 357:
 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