Redis Cluster auf Cloud-Servern einrichten

Bei diesem Text handelt es sich um eine maschinell erstellte Übersetzung. Eine überarbeitete Version ist in Planung.

Die IONOS Community wird ab dem 01.01.2021 nicht mehr verfügbar sein. Wir laden Sie ein, uns auf Twitter oder Facebook zu folgen.

Wenn Sie Fragen zu unseren Produkten haben, finden Sie im IONOS Hilfe-Center weitere Informationen. Alternativ hilft Ihnen unser Support-Team unter @IONOS_hilft gerne weiter.

Einführung

Redis ist ein beliebter Open Source In-Memory-Datenstrukturspeicher, der als Alternative zu SQL- und relationalen Datenbanken verwendet wird. Die Verwendung von Redis Cluster zur Verteilung der Verarbeitung auf mehrere Server erhöht den Durchsatz und die Stabilität einer Redis-Installation erheblich. Redis Cluster teilt Daten automatisch auf mehrere Server, um die möglichen Fehlerquellen zu reduzieren.

Anforderungen

  • Mindestens zwei Cloud Server mit installiertem Redis 3.0+.

Redis Cluster wird nur von Redis Versionen 3.0 und höher unterstützt. Eine Schritt-für-Schritt-Anleitung zur Installation von Redis finden Sie in unserem Artikel Installation von Redis auf einem IONOS Linux Cloud Server.

Hinweis: Die offizielle Dokumentation empfiehlt, mit sechs Servern in einem Redis-Cluster zu beginnen: drei Manager und drei Worker-Knoten. Für die Zwecke dieses Tutorials werden wir drei Server verwenden: einen Manager und zwei Arbeiterknoten.

Firewall-Zugang

Sie müssen den Zugriff für TCP-Verbindungen auf zwei Ports erlauben:

  • Der normale Redis TCP-Datenport: 6379
  • Der Cluster-Port, das ist der TCP-Datenport plus 10.000: 16379

Sie können die Redis TCP-Datenportnummer anpassen. Der Cluster-Portversatz ist jedoch fest und beträgt immer 10.000.

Weitere Informationen zum Erstellen und Ändern der Firewall-Richtlinie Cloud Server finden Sie unter Verwendung einer Firewall auf einem Cloud Server, siehe unseren Artikel Konfigurieren der Firewall-Richtlinie.

Konfigurieren der Server

Die Datei /etc/redis/redis/redis.conf muss für jeden Server im Cluster konfiguriert werden. Diese Datei enthält alle Konfigurationen für den Cluster, und Sie werden viele davon anpassen müssen, um die Sicherheit zu verbessern und Ihren Bedürfnissen zu entsprechen.

Sehen Sie die offizielle Redis Cluster Dokumentation für eine Erläuterung der am häufigsten verwendeten Konfigurationsparameter. Für dieses Tutorial werden wir nur das Minimum aktualisieren, das benötigt wird, um den Cluster zum Laufen zu bringen.

Konfigurieren der Manager-Server(s)

Verbinden Sie sich mit dem Manager-Server mit SSH und öffnen Sie dann die Datei /etc/redis/redis/redis.conf zur Bearbeitung:

sudo nano /etc/redis/redis.conf

Um den Server für das öffentliche Internet zugänglich zu machen, finden Sie den Abschnitt:

# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1

Fügen Sie ein # hinzu, um diese Direktive zu deaktivieren, so dass sie lautet:

# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#bind 127.0.0.1

Als nächstes legen Sie ein Passwort fest. Suchen Sie den Abschnitt:

# requirepass foobared

Entfernen Sie das #, um diese Direktive zu aktivieren, und ändern Sie foobared auf das sichere Redis-Passwort. Um beispielsweise Wg1Or0H32z als Passwort festzulegen, ändern Sie diese Direktive auf read:

requirepass Wg1Or0H32z

Speichern und beenden Sie die Datei. Starten Sie Redis neu, damit die Änderungen wirksam werden:

sudo systemctl restart redis.service

Wiederholen Sie diese Schritte für jeden Manager-Server im Cluster.

Konfigurieren der Worker-Server(s)

Verbinden Sie sich mit SSH mit dem Worker-Server und öffnen Sie dann die Datei /etc/redis/redis/redis.conf zur Bearbeitung:

sudo nano /etc/redis/redis.conf

Um den Server für das öffentliche Internet zugänglich zu machen, finden Sie den Abschnitt:

# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind 127.0.0.1

Fügen Sie ein # hinzu, um diese Direktive zu deaktivieren, so dass sie lautet:

# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
# JUST COMMENT THE FOLLOWING LINE.
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#bind 127.0.0.1

Fügt die Verbindungsinformationen des Managerservers hinzu. Suchen Sie den Abschnitt:

# slaveof <masterip> <masterport>

Entfernen Sie die #, um diese Direktive zu aktivieren, und fügen Sie die IP-Adresse und die TCP-Datenportnummer des Managerservers hinzu:

slaveof 192.168.0.1 6379

Fügen Sie das Passwort des Managerservers hinzu. Suchen Sie den Abschnitt:

# masterauth <master-password>

Entfernen Sie die #, um diese Direktive zu aktivieren, und fügen Sie das Redis-Passwort des Managerservers hinzu. Wenn das Redis-Passwort des Managerservers beispielsweise Wg1Or0H32z lautet, ändern Sie diese Anweisung in read:

masterauth Wg1Or0H32z

Als nächstes legen Sie ein Passwort fest. Suchen Sie den Abschnitt:

# requirepass foobared

Entfernen Sie die #, um diese Direktive zu aktivieren, und ändern Sie foobared auf das sichere Redis-Passwort des Arbeiterservers. Um beispielsweise Pb6wkj128M als Passwort für den Arbeiterserver festzulegen, ändern Sie diese Zeile in read:

requirepass Pb6wkj128M

Speichern und beenden Sie die Datei. Starten Sie Redis neu, damit die Änderungen wirksam werden:

sudo systemctl restart redis.service

Wiederholen Sie diese Schritte für jeden Worker-Server im Cluster.

Überprüfen des Clusters

Nachdem alle Server konfiguriert wurden, verbinden Sie sich mit dem Manager-Server mit SSH, um sicherzustellen, dass der Cluster ausgeführt wird. Melden Sie sich bei Redis an:

redis-cli -h 127.0.0.1 -p 6379

Dadurch melden Sie sich beim Redis-Kommandozeilen-Client an.

Authentifizieren Sie sich mit dem Redis-Passwort des Managerservers:

AUTH [password]

Wenn das Redis-Passwort des Managerservers beispielsweise Wg1Or0H32z lautet, ist der Befehl:

AUTH Wg1Or0H32z

Der Server wird antworten:

OK

Abfrage Redis nach dem Systemstatus:

INFO

Dadurch werden Informationen über die Redis-Installation ausgegeben. Achten Sie auf den Abschnitt Replikation:

# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.1,port=6379,state=online,offset=532,lag=0
slave1:ip=192.168.0.2,port=6379,state=online,offset=532,lag=0
master_replid:f525b02b0b2548b6946cf11df78df19cdb0300cd
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:532
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:532

Im obigen Beispiel ist der Redis-Cluster korrekt eingerichtet und läuft mit zwei Worker- ("Slave"-) Knoten und deren IP-Adressen.