Heim >Datenbank >Redis >So implementieren Sie einen hochverfügbaren Redis-Cluster

So implementieren Sie einen hochverfügbaren Redis-Cluster

(*-*)浩
(*-*)浩Original
2019-11-29 09:11:212736Durchsuche

So implementieren Sie einen hochverfügbaren Redis-Cluster

Einige Methoden zum Implementieren des Redis-Hochverfügbarkeitsmechanismus:

Um den Redis-Hochverfügbarkeitsmechanismus sicherzustellen, sind Redis-Master-Slave-Replikation und Redis-Persistenz erforderlich Unterstützung für Mechanismen, Sentinel-Mechanismen, Keepalived usw.

Die Funktionen der Master-Slave-Replikation: Datensicherung, Lese-/Schreibtrennung, verteiltes Clustering, hohe Verfügbarkeit, Fehlertoleranzmechanismus für Ausfallzeiten usw. (Empfohlenes Lernen: Redis-Video-Tutorial)

Prinzip der Redis-Master-Slave-Replikation

Zuallererst die Master-Slave-Replikation muss in zwei Rollen unterteilt werden: Master (Master) und Slave (Slave). Hinweis: Redis unterstützt nur einen Master, im Gegensatz zur Master-Slave-Replikation von MySQL und Nginx, die mehrere Master und mehrere Slaves haben kann.

1. Die Replikationsfunktion von Redis unterstützt die Datensynchronisierung zwischen mehreren Datenbanken. Eine davon ist die Master-Datenbank (Master) und die andere ist die Slave-Datenbank (Slave). Bei einem Schreibvorgang werden die Daten im Allgemeinen automatisch mit der Slave-Datenbank synchronisiert schreibgeschützt und empfängt Daten, die von der Master-Datenbank synchronisiert werden. Eine Master-Datenbank kann mehrere Slave-Datenbanken haben, während eine Slave-Datenbank nur eine Master-Datenbank haben kann.

2. Die Replikationsfunktion von Redis kann das Lesen und Schreiben der Datenbank effektiv trennen und die Auslastungskapazität des Servers verbessern. Die Master-Datenbank führt hauptsächlich Schreibvorgänge aus, während die Slave-Datenbank für Lesevorgänge verantwortlich ist.

Der Prozess der vollständigen Synchronisierung der Master-Slave-Replikation: siehe Abbildung unten

So implementieren Sie einen hochverfügbaren Redis-Cluster

Redis Master-Slave-Replikation Kann darauf basieren, ob es vollständig ist. Es wird in vollständige Synchronisierung und inkrementelle Synchronisierung unterteilt.

Die vollständige Redis-Replikation erfolgt im Allgemeinen während der Slave-Initialisierungsphase. Zu diesem Zeitpunkt muss der Slave alle Daten kopieren der Meister.

Vollständiger Synchronisierungsprozess:

1: Wenn eine Slave-Datenbank startet, wird ein Synchronisierungsbefehl an die Master-Datenbank gesendet,

2: Die Master-Datenbank empfängt Nach Erreichen des Synchronisierungsbefehls beginnt sie, den Snapshot im Hintergrund zu speichern (RDB-Vorgang ausführen) und verwendet den Cache-Bereich, um alle nachfolgenden Schreibvorgänge aufzuzeichnen

3: Wenn der Master-Server-Snapshot vorliegt Nach dem Speichern sendet Redis die Snapshot-Datei an die Slave-Datenbank.

4: Nach dem Empfang der Snapshot-Datei aus der Datenbank werden alle alten Daten verworfen und der empfangene Snapshot geladen.

5: Nachdem der Master-Server-Snapshot gesendet wurde, beginnt er mit dem Senden des Schreibbefehls im Puffer an den Slave-Server.

6: Der Slave-Server schließt das Laden des Snapshots ab, beginnt mit dem Empfang von Befehlsanfragen und führt Schreibbefehle aus dem Master-Server-Puffer aus.

Inkrementeller Synchronisierungsprozess:

Redis inkrementelle Replikation bezieht sich auf den Prozess der Synchronisierung von Schreibvorgängen, die auf dem Master-Server stattfinden, mit dem Slave-Server, wenn der Slave normal zu arbeiten beginnt nach der Initialisierung.

Der Prozess der inkrementellen Replikation besteht hauptsächlich darin, dass der Master-Server jedes Mal, wenn er einen Schreibbefehl ausführt, denselben Schreibbefehl an den Slave-Server sendet und der Slave-Server den empfangenen Schreibbefehl empfängt und ausführt.

Auswahl der vollständigen und inkrementellen Synchronisierung der Redis-Master-Slave-Replikation:

Wenn der Master-Slave-Server gerade verbunden ist, wird nach der vollständigen Synchronisierung zuerst die vollständige Synchronisierung durchgeführt Wenn die Synchronisierung abgeschlossen ist, führen Sie dann eine inkrementelle Synchronisierung durch. Selbstverständlich kann der Slave bei Bedarf jederzeit eine vollständige Synchronisierung einleiten. Die Redis-Strategie besteht darin, dass, egal was passiert, zuerst eine inkrementelle Synchronisierung versucht wird, und wenn dies nicht gelingt, muss die Slave-Maschine eine vollständige Synchronisierung durchführen.

Wie konfiguriere ich die Redis-Master-Slave-Replikation?

修改从服务器redis/conf中的redis.conf文件
 
修改IP地址和端口号为主服务器的IP和端口
slaveof 10.211.55.9 6379 
 
masterauth 123456--- 如果主redis服务器配置了密码,则需要配置

Sie müssen nur die redis.conf des Slave-Servers konfigurieren, auf dem Master-Server ist keine Konfiguration erforderlich. Sie können überprüfen, ob dies erfolgreich ist: 1. Melden Sie sich zunächst beim Redis-CLI-Client des Hauptservers an und geben Sie Informationen ein.

Wenn die Rolle anzeigt, dass Master und Slave0 die IP des Slave-Servers normal anzeigen können, bedeutet dies, dass die Master-Slave-Dienstkonfiguration erfolgreich ist, die Master-Slave-Replikationskonfiguration erfolgreich ist und die Lese-/Schreibtrennung erfolgt ist Wird gleichzeitig auch erreicht? Probieren Sie es aus. Kann Ihr Slave-Server trotzdem Schreibvorgänge ausführen?

Die Antwort lautet: Nein. Es finden nur Lesevorgänge vom Server statt!

Weitere technische Artikel zu Redis finden Sie in der Spalte Redis Getting Started Tutorial.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen hochverfügbaren Redis-Cluster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn