So richten Sie die Redis -Replikation (mit einem Cluster -Modus deaktiviert) in CentOS 8 - Teil 1 ein

So richten Sie die Redis -Replikation (mit einem Cluster -Modus deaktiviert) in CentOS 8 - Teil 1 ein

Redis (Remote -Wörterbuchserver) ist eine sehr beliebte und weit verbreitete Open-Source.

Es bietet eine Reihe von Funktionen, die es für eine Vielzahl von Anwendungsfällen effektiv machen: als Datenbank, Caching -Schicht, Message Broker oder Warteschlange; In Webanwendungen, Chat- und Messaging-Anwendungen, Spielen, Echtzeitdatenanalysen und vielem mehr anwendbar.

Es unterstützt flexible Datenstrukturen, asynchrone Master-Slave-Replikation, um die Leseleistung und den Schutz vor Datenverlust zu skalieren, die skalierende Schreibleistung, zwei Formen der Persistenz für das Schreiben von In-Memory-Daten in ein kompaktes Format, Clustering und das Schreiben von In-Memory-Daten zu skalieren. Partitionierung. Es verfügt außerdem über automatische Ausfälle für die Bereitstellung mit hoher Verfügbarkeit über die Bereitstellung Redis Sentinel, Lua Scripting, Transaktionen, und viele mehr.

Sein Nein SQL oder nicht-relationale Datenbank, Redis bietet einige Leistungsvorteile gegenüber herkömmlichen Datenbanksystemen (wie z Mysql/Mariadb, PostgreSQL, usw.) Da sich alle Daten befinden oder im Speicher gespeichert sind, wodurch sie für eine Anwendung leicht zugänglich ist, während herkömmliche Datenbanken alle Daten auf die Festplatte oder eine externe Quelle schreiben oder aus lesen müssen.

Redis ist zu einer immer häufiger vorkommenden Wahl für das Caching geworden, die die Wiederverwendung von zwischengespeicherten Daten (im Hauptspeicherraum einer Anwendung speichern) ermöglicht, anstatt immer eine Datenbank für häufig verwendete Daten abzufragen. Es ist also ein fantastischer Begleiter von RDMS (Relationale Datenbankverwaltungssysteme) letztendlich die Anwendungsleistung verbessern.

In diesem dreiteiligen Redis Die Tutorial -Serie behandelt die Einrichtung und Verwendung einiger der wichtigsten Funktionen von Redis, die Replikation und hohe Verfügbarkeit verwenden Redis Sentinel Und Redis -Cluster, Die Artikel sind:

Teil 1: So richten Sie die Redis-Replikation (mit einem Cluster-Modus deaktiviert) in CentOS 8 ein Teil 2: So richten Sie Redis für eine hohe Verfügbarkeit mit Sentinel in CentOS 8 ein Teil 3: So richten Sie in CentOS 8 einen Redis-Cluster (mit dem Cluster-Modus aktiviert) ein

Diese Anleitung zeigt, wie man eingerichtet wird Redis -Replikation (mit Cluster-Mode deaktiviert) In Centos 8 Linux, einschließlich der Installation von Redis, der Konfiguration des Masters und der Replikate und testen Sie die Replikation.

Wichtig: A Redis -Cluster (ich.e a Replikationscluster) Mit dem Cluster -Modus deaktiviert hat eine einzelne Knotengruppe (e.g a Meister und ein oder zwei Replikate), wo ein Redis -Cluster mit aktiviertem Clustermodus aus zwei oder mehr Knotengruppen besteht (e.g drei Meister mit jeweils Sklaven oder zwei).

Voraussetzungen:

  1. Server mit CentOS 8 Installation

Testumgebung einrichten

Redis Master Server: 10.42.0.247 Redis replica1/slave1: 10.42.0.21 Redis replica2/slave2: 10.42.0.34 
Logische Darstellung des Redis -Replikationsdiagramms

Mit dem obigen Setup (mit einem einzelnen Lese-/Schreib-Primär-/Masterknoten und 2 schreibgeschützten Replikatknoten) haben wir eine einzelne Knotengruppe, die alle Daten des Clusters in jedem Knoten enthält. Sobald ein Slave eine Verbindung zu einem Master herstellt, empfängt er eine erste Kopie der vollständigen Datenbank, und alle Daten, die zuvor auf dem Sklaven vorhanden waren.

Außerdem kann ein Kunde nur an den Master schreiben, aber von jedem Knoten im Cluster lesen. Und wie Schreibvorgänge auf dem Master aufgeführt werden, verbreiten sie sich an alle verbundenen Sklaven, um die Slave-Datensätze in Echtzeit zu aktualisieren.

Schritt 1: Redis auf CentOS 8 installieren

1. Melden Sie sich zunächst bei allen an Centos 8 Knoten über SSH und dann die installieren Redis Paket auf allen Knoten (Master und Replicas) mit dem DNF -Paketmanager wie gezeigt.

# DNF install @Redis 

2. Nach Abschluss der Redis Paketinstallation starten Sie die Redis Service, ermöglichen Sie es automatisch an jedem Systemstart und überprüfen Sie, ob er wie folgt in Betrieb ist.

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

3. Sie können auch bestätigen, dass die Redis Der Server ist in Betrieb, indem sie Höranschlüsse über den Befehl ss wie folgt überprüfen.

# ss -ltpn | Grep Redis-Server 
Bestätigen Sie Redis -Server -Ports

Schritt 2: Konfigurieren von Redis Master Server

4. Redis wird mit dem konfiguriert /etc/Redis.Conf Konfigurationsdatei, eine selbstdokumentierte Beispielkonfigurationsdatei. Erstellen Sie zunächst eine Sicherung der Originaldatei und öffnen Sie sie für die Bearbeitung mit Ihrem Befehlszeileneditor der Wahl zum Bearbeiten.

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

5. Standardmäßig a Redis Die Instanz ist so konfiguriert, dass sie Verbindungen auf dem anhören und akzeptieren Loopback Schnittstelle unter Verwendung der Bind -Anweisung. Um mit den Repliken zu kommunizieren, sollte der Master konfiguriert werden, um auf das zu hören IPv4 Loopback -Adresse und ihre Lan IP -Adresse i.e 10.42.0.247.

binden 127.0.0.1 10.42.0.247 

6. Setzen Sie als nächstes den Parameter des geschützten Modus auf auf NEIN um die Kommunikation mit den Repliken wie gezeigt zu ermöglichen.

geschützter Modus Nr 

Auch Redis hört auf Port zu 6379 die mit dem festgelegt wird Hafen Richtlinie. Dies ist der Datenport für die Kommunikation mit Anwendungs ​​-APIs oder CLI -Clients.

Port 6379 
Konfigurieren von Redis Master Server

7. Um optional die zu sichern Master-Replica Kommunikation können den Meister mit dem schützen Erfordernis Den Anweisung, damit die Clients/Replicas ein Authentifizierungskennwort ausstellen müssen, bevor Befehle ausgeführt werden oder einen Replikationssynchronisationsprozess gestartet werden. Andernfalls verweigert der Master die Client/Replika -Anforderung (denken Sie daran, ein sicheres Passwort festzulegen).

Wir werden die folgende Option für Demonstrationszwecke verwenden, um zu zeigen, wie es funktioniert.

Anforderung [E -Mail geschützt] 
Setzen Sie das Authentifizierungskennwort

8. Auch Redis -Protokolle werden in der gespeichert /var/log/redis/redis.Protokoll Datei, diese wird mit dem festgelegt Logdatei Die Richtlinie und die Standard -Server -Ausführungsstufe sind Notiz, definiert mit dem Loglevel Parameter.

loglevel notal logfile/var/log/redis/redis.Protokoll 
Stellen Sie die Redis -Protokolldatei und die Protokollebene fest

9. Seit systemd ist das Standardsystem und den Service Manager in Centos 8, Sie können konfigurieren Redis mit dem zu interagieren systemd Überwachungsbaum, indem Sie die festlegen beaufsichtigt Parameter zu systemd.

Übersichtliches Systemd 
Stellen Sie den Redis -Supervisor auf Systemd ein

10. Speichern Sie die Datei, nachdem Sie alle erforderlichen Konfigurationen erstellt haben, und schließen Sie sie. Dann starten Sie die neu neu Redis Service zur Anwendung der neuen Änderungen.

# Systemctl Daemon-Reload # SystemCTL Neustart Redis 

11. Zugreifen auf die Redis Server müssen wir die verwenden Redis-Cli (Eine Befehlszeilenschnittstelle zum Redis-Server). Standardmäßig stellt es eine Verbindung zum Server auf der Lokalhost (bei 127.0.0.1 Hafen 6379). Beachten Sie, dass der Server mithilfe eines Kennworts von Clients gesichert ist, da ein Befehl vor der Authentifizierung ausfällt.

Benutze die Auth Befehl zur Lieferung des Authentifizierungskennworts wie im folgenden Screenshot gezeigt.

# Redis-Cli 127.0.0.1: 6379> Client -Liste 127.0.0.1: 6379> auth [E -Mail geschützt] 127.0.0.1: 6379> Client -Liste 
Zugreifen

12. Zu einer Verbindung zu einem herstellen Replik (Verwenden Sie nach dem Konfigurieren der im nächsten Abschnitt beschriebenen) -H Und -P Optionen zum Angeben der Replikat -IP -Adresse/des Hostnamens bzw. des Ports (nicht des Ports 6379 Muss in der Firewall der Replik offen sein).

# Redis -Cli -h 10.42.0.21 -p 6379 

13. Als nächstes öffnen Sie die Redis Serverdatenport in der Firewall, um eingehende Verbindungen zum Master zu ermöglichen und anschließend die Firewall-Regeln mit dem Befehl Firewall-CMD wie gezeigt neu zu laden.

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

Schritt 3: Konfigurieren von Redis Replik/Slave -Servern

14. Schnell a einstellen a Redis Instanz als Replik im laufenden Fliegen verwenden Sie die Redis-Cli Dienstprogramm und rufen Sie die an Nachbildung Befehl wie gezeigt.

# Redis-Cli Replikof 10.42.0.247 6379 oder # Redis-Cli 127.0.0.1: 6379> Replicaof 10.42.0.247 6379 
Stellen Sie eine Verbindung zu einer Master -Redis -Instanz her

15. Um eine Replikationsverbindung dauerhaft zu machen, müssen Sie die folgenden Änderungen in der Konfigurationsdatei vornehmen. Beginnen Sie mit dem Sichern der Originaldatei und öffnen Sie sie für die Bearbeitung.

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

16. Damit Clients eine Verbindung zum Replikat zum Lesen von Daten ermöglichen können, fügen Sie die Replikat -IP -Adresse der BIND -Anweisung hinzu.

# Replica1 Bind 127.0.0.1 10.42.0.21 # Replica2 Bind 127.0.0.1 10.42.0.34 

Festlegen einer Redis -Instanz als Replikat

17. Um eine Redis -Instanz als konfigurieren Replik, Verwenden Sie das Nachbildung Parameter und setzen.

Replikation 10.42.0.247 6379 

Setzen Sie die Replik, um sich mit dem Master zu authentifizieren

18. Da unsere Master -Instanz mithilfe eines Kennworts geschützt ist, müssen wir das Kennwort in der Replikatkonfiguration festlegen, um es zu ermöglichen, den Master zu authentifizieren, wobei es die Authentifizierung des Master MasterAuth Parameter.

MasterAuth [E -Mail geschützt] 

19. Wenn eine Nachbildung seine Verbindung mit dem Master verliert oder wenn die Replikation im Gange ist, ist die Replik so konfiguriert, dass sie auf Client -Anfragen antworten, möglicherweise mit “mit“ mit “veraltet" Daten. Aber wenn es die erste Synchronisation ist, ist der Datensatz möglicherweise einfach leer. Dieses Verhalten wird von der gesteuert Replik-Serve-Stalldaten Parameter.

Und da Redis 2.6 Standardmäßig sind Repliken schreibgeschützt, dies wird von der gesteuert Nur-Replik-Read Parameter. Sie können andere Replik -Konfigurationsanpassungen für Ihre Anwendungsanforderungen vornehmen.

20. Sobald Sie alle notwendigen Änderungen vorgenommen haben, starten Sie den Redis -Service auf allen Repliken neu.

# Systemctl Neustart Redis 

21. Auch offener Hafen 6379 In der Firewall, um Verbindungen vom Master und Kunden zu den Replikaten zu ermöglichen und die Firewall -Regeln neu zu laden.

# Firewall-cmd --zone = public --perManeNent --add-port = 6379/TCP # Firewall-CMD--Reload 

Schritt 4: Überprüfen Sie den Replikationsstatus des Master-Replica

22. Einmal der Master-Replica Die Replikationskonfiguration ist abgeschlossen. Wir können überprüfen, ob die Einrichtung wie folgt gut funktioniert.

Führen Sie auf dem Master die folgenden Befehle aus.

# Redis-Cli 127.0.0.1: 6379> auth [E -Mail geschützt] 127.0.0.1: 6379> Info Replication 
Überprüfen Sie die RETIS -Umzugsinformationen zum Master

23. Überprüfen Sie außerdem den Replikationsstatus in den Repliken/Sklaven wie folgt.

# Redis-Cli 127.0.0.1: 6379> Info Replication 
Überprüfen Sie die Informationen zur Redis -Replikation zu Redis Replica 1 Überprüfen Sie die Informationen zur Redis -Replikation zu Redis Replica 2

23. Testen wir nun die Replikation mit den Einstellungen a Schlüsselwert in der Master -Instanz und überprüfen Sie, ob die Daten mit den Replikaten synchronisiert sind.

Tun Sie dies auf den Meister:

# Redis-Cli 127.0.0.1: 6379> auth [E -Mail geschützt] 127.0.0.1: 6379> Domain 'www festlegen.Tecmint.com ' 
Legen Sie den Schlüsselwert in der Master -Instanz fest

24. Überprüfen Sie dann, ob die Daten wie gezeigt mit den Repliken synchronisiert wurden.

# Redis-Cli 127.0.0.1: 6379> Domain Holen Sie sich 
Überprüfen Sie den Datensynchronisierungsstatus auf Repliken

Schutz der Master -Instanz vor dem Verlust einiger Schreibvorgänge

25. Redis verfügt über eine Funktion, mit der eine Master -Instanz das Risiko einschränken kann, einige Schreibvorgänge zu verlieren, falls nicht genügend Repliken verfügbar sind, auf eine bestimmte Anzahl von Sekunden.

Dies bedeutet, dass ein Meister aufhören kann, Schreibvorgänge zu akzeptieren, wenn es weniger als gibt N Angeschlossene Repliken, eine Verzögerung weniger oder gleich als M Sekunden, wie von der kontrolliert Min-Replicas-to-Write Und Min-Replicas-Max-Lag Optionen.

Um sie festzulegen, sie zu entfernen und die Werte gemäß Ihren Einrichtungsanforderungen festzulegen /etc/Redis.Conf, wie in den folgenden Screenshot gezeigt. Diese Konfiguration bedeutet, dass der Meister nach 10 Sekunden nach 10 Sekunden nach 10 Sekunden, wenn es weniger als 2 Replikate online gibt.

min-replicas-zu-write 2 min-replicas-max-lag 10 
Schutz des Redis -Meisters vor Schreibverlust

Sie können im Rest der weiteren Optionen finden /etc/Redis.Conf Konfigurationsdatei und weitere Details zur Replikation in der Redis -Dokumentation lesen.

Im nächsten Artikel werden wir mit dem Einrichten von Redis für eine hohe Verfügbarkeit mit Sentinel in behandeln Centos 8. Bis dahin bleiben Sie versperrt und denken Sie daran, Ihre THERRs und Fragen mit unserem Kommentarformular unten zu teilen, damit Sie uns erreichen können.