Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Dies Anleitung soll dafür Dienen wie man Redis-Cluster auf Ubuntu installiert.

Table of Contents

Voraussetzung

  • Redis muss auf einem Linux OS installiert werden. (Ubuntu, Redhat, Centos, etc)

  • Für die Installation braucht es sicherlich 3 Redis Instanzen. Diese können auf unterschiedlichen Server installiert werden, oder mehrere Instanzen auf einem Server. (best practice, anhand untenstehendem Beispiel.)

  • Sofern die Redis-Server in unterschiedlichen Zonen stehen, müssen sich diese gegenseitig erreichen können.

  • Folgende Firewall Port müssen geöffnet werden

    • 6379

    • 16384

    • 16379

    • 7001 (Falls über Cluster)

    • 7002 (Falls über Cluster)

    • 7003 (Falls über Cluster)

    • 7004 (Falls über Cluster)

    • 7006 (Falls über Cluster)



Beispiel

Als Beispiel haben wir 3 Virtuelle Ubuntu Server.

Redis HA 1 (192.168.17.134)
Redis HA 2 (192.168.17.135)
Redis HA 3 (192.168.17.136)

Auf Redis HA1 ist sowohl eine Master Instanz 7001 sowohl auch eine Slave Instanz 7004
Auf Redis HA2 ist sowohl eine Master Instanz 7002 sowohl auch eine Slave Instanz 7005
Auf Redis HA3 ist sowohl eine Master Instanz 7003 sowohl auch eine Slave Instanz 7006

Der Slave für Master 7001 ist Slave 7006
Der Slave für Master 7002 ist Slave 7006
Der Slave für Master 7003 ist Slave 7004

Installation

Allgemeine Installation für alle 3 Server


Switch auf root user:

Code Block
sudo su

...

Code Block
cd /etc/redis/redis-6.2.6/
sudo make test

Konfiguration VM 1

Da wir wie in unserem Beispiel mehrere Redis-Instanzen pro Server haben. Brauchen wir mehrere konfig-Files pro Server.
Das heisst wir erstellen auf der VM01 folgende config-Files →node1.conf / node4.conf . Mit welchen wir anschliessend Redis starten.

...

Code Block
port 7004
cluster-enabled yes
cluster-config-file cluster-node-4.conf
cluster-node-timeout 5000
appendonly yes
appendfilename node-4.aof
dbfilename dump-4.rdb

Konfiguration VM 2

Da wir wie in unserem Beispiel mehrere Redis-Instanzen pro Server haben. Brauchen wir mehrere konfig-Files pro Server.
Das heisst wir erstellen auf der VM02 folgende config-Files →node2.conf / node5.conf . Mit welchen wir anschliessend Redis starten.

...

Code Block
port 7005
cluster-enabled yes
cluster-config-file cluster-node-5.conf
cluster-node-timeout 5000
appendonly yes
appendfilename node-5.aof
dbfilename dump-5.rdb

Konfiguration VM 3

Da wir wie in unserem Beispiel mehrere Redis-Instanzen pro Server haben. Brauchen wir mehrere konfig-Files pro Server.
Das heisst wir erstellen auf der VM03 folgende config-Files →node3.conf / node6.conf . Mit welchen wir anschliessend Redis starten.

...

Code Block
port 7006
cluster-enabled yes
cluster-config-file cluster-node-6.conf
cluster-node-timeout 5000
appendonly yes
appendfilename node-6.aof
dbfilename dump-6.rdb

Redis Starten

Auf jeder VM kann nun mit folgeden Befehl Redis mit einem Config-File gestartet werden.

...

Server

Instanz

Befehl

HA1 (192.168.17.134)

Node 01 - Port 7001

Node 04 - Port 7004

Code Block
./redis-6.2.6/src/redis-server node1.conf &
Code Block
./redis-6.2.6/src/redis-server node4.conf &

HA 2 (192.168.17.135)

Node 02 - Port 7002

Node 05 - Port 7005

Code Block
./redis-6.2.6/src/redis-server node2.conf &
Code Block
./redis-6.2.6/src/redis-server node5.conf &

HA 3 (192.168.17.136)

Node 03 - Port 7003

Node 06 - Port 7006

Code Block
./redis-6.2.6/src/redis-server node3.conf &
Code Block
./redis-6.2.6/src/redis-server node6.conf &

Redis Verbinden

Auf die einzelnen Instanzen kann nun via Redis-CLI zugegriffen werden.

Server

Instanz

Befehl

HA1 (192.168.17.134)

Node 01 - Port 7001

Node 04 - Port 7004

Code Block
./redis-6.2.6/src/redis-cli -p 7001
./redis-6.2.6/src/redis-cli -p 7004

HA 2 (192.168.17.135)

Node 02 - Port 7002

Node 05 - Port 7005

Code Block
./redis-6.2.6/src/redis-cli -p 7002
./redis-6.2.6/src/redis-cli -p 7005

HA 3 (192.168.17.136)

Node 03 - Port 7003

Node 06 - Port 7006

Code Block
./redis-6.2.6/src/redis-cli -p 7003
./redis-6.2.6/src/redis-cli -p 7006

Redis Cluster konfigurieren

Da die Instanzen jedoch noch Lokal laufen, müssen diese dem Cluster hinzugefügt werden.

...

Überprüfen und mit Y bestätigen.

Redis-CLI


Auf die Redis-CLI kommt man wie folgt:

...

Code Block
./redis-6.2.6/src/redis-cli -c -p 7001

ping

Code Block
ping

Können andere Nodes gepingt werden.

info

Code Block
info

Zeigt alle Informationen über den Cluster an

...

cluster nodes

Code Block
cluster nodes

Zeigt alle Nodes an, und ob diese Master oder Slave sind.

...

info replication

Code Block
info replication

Zeigt an, ob der Server Master oder Slave ist und wer dessen Slave ist.

...

Failover

Wenn wir nun als Beispiel den Master 7003 beenden.
Müsste der Slave 7004 als neuen Master fungieren.

...