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
redis [11.01.2017 21:49] – [Cluster-Konfiguration] havelockredis [17.07.2021 14:27] (aktuell) – [Knoten zum Cluster hinzufügen] 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 Buster (10) 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 18: Zeile 20:
  
 Benötigte Pakete: Benötigte Pakete:
-  aptitude install ruby libjemalloc1 php5-redis python-redis+  aptitude install ruby libjemalloc1 php-redis python-redis
  
 Wir wollen die aktuelle, clusterfähige Version haben, also übersetzen wir uns das Ding einfach selber: Wir wollen die aktuelle, clusterfähige Version haben, also übersetzen wir uns das Ding einfach selber:
Zeile 41: Zeile 43:
  
 <file conf /etc/sysctl.conf> <file conf /etc/sysctl.conf>
-vm_overcommit_memory=1+vm.overcommit_memory=1
 </file> </file>
  
Zeile 93: Zeile 95:
 Die folgenden Konfiguratonsbeispiele beziehen sich auf ''gate01'', Bei den anderen Servern ist einfach eine andere IP-Adresse zu verwenden. Die folgenden Konfiguratonsbeispiele beziehen sich auf ''gate01'', Bei den anderen Servern ist einfach eine andere IP-Adresse zu verwenden.
  
-Wichtig: Bei dem bind Befehl muß die localhost-Adresse an zweiter Stelle stehen. Anderenfalls funktioniert der Cluster nicht.+Wichtig:  
 +  * Bei dem bind Befehl muß die localhost-Adresse an zweiter Stelle stehen. Anderenfalls funktioniert der Cluster nicht
 +  * ''logfile'' ist bewußt leer. Falls es einmal Probleme gibt, kann dort z.B. ''/var/log/redis/master.log'' eingetragen werden um Debuginformationen zu erhalten.
  
 Konfigurationsdatei für den Master Konfigurationsdatei für den Master
Zeile 198: Zeile 202:
 redis           7000/tcp   # Redis server redis           7000/tcp   # Redis server
 redis           7001/tcp redis           7001/tcp
-redis-cluser    17000/tcp  # Redis cluster bus+redis-cluster   17000/tcp  # Redis cluster bus
 redis-cluster   17001/tcp redis-cluster   17001/tcp
 </file> </file>
  
-Cluster initialisieren:+==== 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 226: Zeile 231:
 ==== Knoten zum Cluster hinzufügen ==== ==== Knoten zum Cluster hinzufügen ====
 Achtung: Das ist nur ein Merker für das grobe Vorgehen und ist  Achtung: Das ist nur ein Merker für das grobe Vorgehen und ist 
-FehlerhaftInsbesondere die korrekte Slave-Konfiguration ist  +ggffehlerhaft. 
-noch nicht klar.+Beim Slave ist die erste Adresse/Port die lokale Instanz und die  
 +Zweite der zu verwendende Master 
   - Knoten aufsetzen<code>   - Knoten aufsetzen<code>
 ./src/redis-trib.rb add-node 10.137.12.1:7000 ./src/redis-trib.rb add-node 10.137.12.1:7000
-./src/redis-trib.rb add-node --slave 10.137.12.1:7001+./src/redis-trib.rb add-node --slave 10.137.12.1:7001 10.137.10.1:7000
 </code> </code>
-  - Stlot neu aufteilen<code>+  - Slot neu aufteilen<code>
 ./src/redis-trib.rb reshard ... ./src/redis-trib.rb reshard ...
 +</code>
 +
 +==== Knoten vom Cluster entfernen ====
 +
 +  * Prozesse sollten nicht laufen: ''/etc/init.d/redis-cluster stop''
 +  * Verzeichnisse leeren<code>
 +rm /var/lib/redis/7000/*
 +rm /var/lib/redis/7001/*
 +</code>
 +  * Auf allen übrigen Serverinstanzen die verwaisten Knoten-IDs entfernen<code>
 +cluster forget 11de37b1018dbd8a83fa6000af6381630468e01e
 </code> </code>
  
Zeile 240: Zeile 257:
   * ''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 255: Zeile 276:
 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>
  
redis.1484167769.txt.gz · Zuletzt geändert: 11.01.2017 21:49 von havelock