So richten Sie einen Redis -Cluster in CentOS 8 - Teil 3 ein

So richten Sie einen Redis -Cluster in CentOS 8 - Teil 3 ein

Redis -Cluster ist ein gebautes Redis Feature, die automatische Sharding, Replikation und hohe Verfügbarkeit unterstützt, die zuvor mithilfe der Verwendung implementiert wurde Wächter. Es ist für zwei Hauptzwecke ausgelegt: Eine besteht darin, Ihren Datensatz automatisch in mehreren Instanzen aufzuteilen und zweitens ein gewisses Maß an Verfügbarkeit während der Partitionen, um den Betrieb fortzusetzen, wenn einige Fälle (insbesondere Masters) ausfallen oder nicht mit der Mehrheit von der Mehrheit von kommunizieren können Knoten im Cluster.

Der Cluster stoppt jedoch, dass im Falle größerer Fehler (e) betrieben wird (e).g Wenn die Mehrheit der Master -Instanzen nicht verfügbar sind). Wenn ein Master und ein Slave gleichzeitig ausfallen, kann der Cluster den normalen Vorgängen nicht fortsetzen (obwohl die Problemumgehung mehr Knoten hinzufügen oder eine Asymmetrie im Cluster erstellen kann, um das Cluster-Layout automatisch zu ändern).

Entsprechend der Redis Cluster -Dokumentation, die “Minimaler ClusterDas erwartungsgemäß erfordert, dass mindestens 3 Masterknoten enthalten sind. Aber das am besten geeignete Setup für hohe Verfügbarkeit sollte mindestens 6 Knoten mit drei Meistern und drei Sklaven haben, wobei jeder Meister einen Sklaven hat.

Wichtig: Redis -Cluster hat auch einige Einschränkungen, die mangelnde Unterstützung für die Unterstützung sind Natted Umgebungen auch solche, in denen IP -Adressen oder TCP -Ports beispielsweise untergebracht sind Docker. Darüber hinaus unterstützt nicht jede Kundenbibliothek es.

Dieser Artikel zeigt, wie man a einrichtet Redis -Cluster (mit Cluster-Mode deaktiviert) In Centos 8. Es enthält die Installation von Redis, die Konfiguration der Clusterknoten, erstellt einen Cluster und testet das Cluster -Failover.

Notiz: Für diesen Leitfaden verwenden wir frische/leere Redis -Instanzen, um den Clustermodus auszuführen. Der Clustermodus funktioniert nicht mit einigen Konfigurationen, die in den ersten beiden Leitfäden unserer Redis -Serie durchgeführt wurden, insbesondere nicht, wenn die Replik des Parameters verwendet wird.

Voraussetzungen:

  1. Server mit CentOS 8 Installation

Testumgebung einrichten

Redis Master1: 10.42.0.247 Redis Master2: 10.42.0.197 Redis Master3: 10.42.0.132 Redis Slave1: 10.42.0.200 Redis Slave2: 10.42.0.21 Redis Slave3: 10.42.0.34 
Redis -Cluster -logisches Diagramm

Unser Setup verfügt über 3 Lese-/Schreibmeisterknoten und 3 schreibgeschützte Replikatknoten, wobei jeder Master eine Replikatin mit einer Replikat. Eine Bewerbung API oder Cli Der Client kann nur an die Masterknoten schreiben, aber von jedem Knoten im Cluster lesen.

Schritt 1: Installieren von Redis auf allen Knoten

1. Melden Sie sich über alle Instanzen an Ssh, Führen Sie dann den folgenden Befehl aus, um die zu installieren Redis Modul mit dem DNF -Paket -Manager wie gezeigt.

# DNF -Modul Installieren Sie Redis 

2. Als nächstes starten Sie die Redis Ermöglichen Sie den Dienst, den System automatisch mit dem System zu starten und seinen Status zu überprüfen, um zu überprüfen, ob er ausgeführt wird (überprüfen Sie den Dienst in allen 6 Instanzen):

# Systemctl start redis # systemctl aktivieren redis # systemctl status redis 

Schritt 2: Konfigurieren von Redis -Instanzen auf allen Knoten

3. In diesem Abschnitt wird beschrieben, wie Sie die Redis -Clusterknoten konfigurieren. Denken Sie daran, die Konfigurationen hier auf allen Knoten durchzuführen.

Benutze die /etc/Redis.Conf Konfigurationsdatei, um die zu konfigurieren Redis Server. Erstellen Sie als empfohlene Praxis eine Sicherung der Originaldatei, bevor Sie sie mit einem Befehlszeilen-Texteditor Ihrer Wahl bearbeiten.

# CP /etc /Redis.Conf /etc /Redis.Conf.Orig # vi /etc /Redis.Conf 

4. Suchen Sie als Nächstes die folgenden Konfigurationsparameter und bearbeiten Sie deren Werte wie gezeigt. Der binden Der Parameter setzt die Schnittstelle des Redis -Server. Entferne das 127.0.0.1 Weil wir festgestellt haben, dass es dort den Prozess der Clustererstellung verlang.

binden 10.42.0.247 

Dann setze die Sicherheitsmodus Zu NEIN Verbindungen aus den anderen Fällen auf dem Cluster zu ermöglichen.

geschützter Modus Nr 

Der Portparameter definiert den Port, den der Redis -Server auf Verbindungen anhört. Die Standardeinstellung ist 6379. Dies ist der Datenport für die Kommunikation mit Kunden.

Port 6379 
Stellen Sie Redis -Hörschnittstelle und Port ein

5. Der nächste Satz von Parametern ermöglicht den Clustermodus und setzen einige seiner nützlichen Funktionen ein. Der Cluster-fähig Parameter, wenn auf eingestellt ist Ja, aktiviert den Clustermodus.

Cluster-fähig Ja 

Als nächstes die Cluster-Config-Datei Der Parameter legt den Namen der Cluster -Konfigurationsdatei eines Clusterknotens fest (e.G Knoten-6379.Conf). Die Datei wird im Arbeitsverzeichnis erstellt (Standard ist der Standard /var/lib/Redis definiert mit dem Dir Parameter) und nicht benutzerbearbeitbar ist.

Cluster-Config-Datei-Knoten-6379.Conf 

Die nächste nützliche Cluster -Option ist Cluster-Knoten-Timeout, Es wird verwendet, um die maximale Zeit in Millisekunden festzulegen. Eine Instanz kann nicht verfügbar sein, damit es in einem Fehlerzustand berücksichtigt werden kann. Ein Wert von 15000 ist äquivalent zu 15 Sekunden.

Cluster-Knoten-Timeout 15000 
Stellen Sie die Clusterknoten -Zeitüberschreitung ein

6. Wir müssen auch die Wiederherstellung der Beharrlichkeit auf der Festplatte ermöglichen. Wir können einen der Persistenzmodi verwenden, das ist die Nur Datei anhängen (Aof): Es protokolliert (in der Datei angehängt.Aof Erstellt unter dem Arbeitsverzeichnis) Jeder von dem Server erfolgreich empfangene Schreibvorgang. Die Daten werden während des Server -Startups gespielt, um den ursprünglichen Datensatz zu rekonstruieren.

Um es zu aktivieren, stellen Sie die fest angehängt Parameter zu Ja.

Appendonly ja 
Legen Sie die Beharrlichkeitsoptionen fest

7. Nachdem Sie alle Änderungen vorgenommen haben, starten Sie die neu neu Redis Service auf allen Knoten, um die jüngsten Änderungen anzuwenden.

# Systemctl Neustart Redis 

8. Zu diesem Zeitpunkt sollte jeder Clusterknoten jetzt eine haben AUSWEIS. Sie können dies in der Protokolldatei unter überprüfen /var/log/redis/redis.Protokoll.

# cat/var/log/redis/redis.Protokoll 
Überprüfen Sie die Clusterknotenprotokolldatei

9. Als nächstes öffnen Sie Port 6397 Und 16379 in allen Fällen. Am später Hafen wird für den Clusterbus (a Knoten-zu-Knoten Kommunikationskanal mit einem binären Protokoll). Dies ist eine grundlegende Anforderung für die Redis -Cluster -TCP -Verbindungen.

# Firewall-cmd --zone = public --permanent --add-port = 6379/tcp # Firewall-cmd --zone = public --permanent --add-port = 16379/TCP # Firewall-CMD--Reload 

Schritt 3: Erstellen des Redis -Clusters

10. Verwenden Sie den Cluster, um den Cluster zu erstellen redis-cli-Befehlszeile Kunde wie folgt. Der --Cluster erstellen ermöglicht die Erstellung von Cluster und --Cluster-Replicas 1 bedeutet, eine Replik pro Master zu erstellen.

Für unser Setup mit 6 Knoten werden wir 3 Meister und 3 Sklaven haben.

Beachten Sie, dass die ersten 6 Knoten berücksichtigt werden Meister (M) und die nächsten drei werden berücksichtigt Sklaven (S). Der erste Sklave I.e 10.42.0.200: 6379 repliziert den ersten Meister i.e 10.42.0.247: 6379, Der zweite Sklave repliziert den zweiten Meister in dieser Reihenfolge.

Der folgende Befehl wird so formatiert, dass das Ergebnis unser logisches Setup oben darstellt.

# Redis-Cli-Cluster erstellen 10.42.0.247: 6379 10.42.0.197: 6379 10.42.0.132: 6379 10.42.0.200: 6379 10.42.0.21: 6379 10.42.0.34: 6379-Cluster-Replicas 1 
Redis -Cluster erstellen

11. Wenn die Clustererstellung erfolgreich ist, führen Sie den folgenden Befehl auf einem beliebigen Host aus (geben Sie die IP -Adresse mit der IP -Adresse an -H Flag), um alle Clusterknoten aufzulisten.

# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten 

Sie sollten in der Lage sein, alle Clusterknoten anzusehen, wobei die Sklaven ihre Meister angeben, wie im folgenden Screenshot gezeigt.

Überprüfen Sie alle Clusterknoten auf jedem Knoten

Die verschiedenen Felder befinden sich in dieser Reihenfolge: Knoten-ID, IP-Adresse: Port, Flags, Last Ping gesendet, letzte Pong empfangen, Konfigurationsepoche, Linkstaat, Slots (für Masters).

Schritt 4: Testen von Redis -Cluster -Failover

12. In diesem Abschnitt werden wir demonstrieren, wie ein Cluster -Failover getestet werden kann. Lassen Sie uns zunächst die Meister zur Kenntnis nehmen.

# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Master 
Listen Sie Redis Cluster Masters auf

Beachten Sie auch die Redis -Sklaven.

# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Slave 
Listen Sie alle Redis -Cluster -Sklaven auf

13. Lassen Sie uns als nächstes den Redis -Dienst auf einem der Masterknoten e stoppen e.G 10.42.0.197 und überprüfen Sie alle Masterknoten im Cluster.

# Systemctl Stop Redis # Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Master 

Aus dem folgenden Screenshot können Sie sehen, dass der Knoten 10.42.0.197: 6367 ist in fehlgeschlagenem Zustand und seinem Sklaven 10.42.0.21: 6379 wurde zum Master -Status befördert.

Überprüfen Sie den Cluster -Failover -Status

14. Jetzt beginnen wir die Redis Service erneut auf dem fehlgeschlagenen Knoten und überprüfen Sie alle Meister im Cluster.

# SystemCTL Start Redis # Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Master 
Überprüfen Sie den gesamten Status des Redis -Cluster -Masters

Überprüfen Sie außerdem die Cluster -Sklaven, um zu bestätigen, dass der fehlgeschlagene Meister jetzt ein Sklave ist.

# Redis -Cli -h 10.42.0.247 -p 6379 Clusterknoten | Grep Slave 
Überprüfen Sie alle Redis -Cluster -Sklaven

Schritt 5: Testen der Datenreplikation über den Redis -Cluster

15. In diesem letzten Abschnitt wird erläutert, wie die Replikation der Clusterdaten überprüft wird. Wir werden einen Schlüssel und einen Wert auf einem der Meister erstellen und dann versuchen, ihn von allen Clusterknoten wie folgt zu lesen. Benutze die -C Wechseln Sie, um die Cluster-Unterstützung im REDIS-CLI-Dienstprogramm zu aktivieren und auf Daten im Cluster-Modus zuzugreifen.

# Redis -Cli -c -h 10.42.0.247 -P 6379 Setzen Sie den Namen 'Tecmint.com ' # redis -cli -c -h 10.42.0.247 -P 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.21 -p 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.132 -P 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.200 -p 6379 NAME NAME # REDIS -CLI -C -H 10.42.0.197 -p 6379 Get Name # Redis -Cli -c -h 10.42.0.34 -p 6379 Holen Sie sich den Namen 
Überprüfen Sie die Replikation von Redis -Cluster -Daten

Das Fazit ist das Redis -Cluster ist der bevorzugte Weg, um automatische Sharding, Replikation und hohe Verfügbarkeit zu erhalten. Es gibt viele andere gut dokumentierte Konfigurationsparameter im Rest der /etc/Redis.Conf Datei finden Sie weitere Informationen in der offiziellen Dokumentation: Redis -Cluster -Tutorial und Redis -Cluster -Spezifikation.

Dies bringt uns zum Ende der dreiteiligen Redis-Tutorial-Serie. Das folgende Feedback -Formular kann verwendet werden, um Fragen oder Kommentare zu veröffentlichen.