Heim > Datenbank > Redis > Einführung in die drei Cluster-Modi von Redis (Cluster-Cluster-Modus)

Einführung in die drei Cluster-Modi von Redis (Cluster-Cluster-Modus)

藏色散人
Freigeben: 2020-09-10 09:35:00
nach vorne
3289 Leute haben es durchsucht

Die folgende Kolumne „Redis-Tutorial“ stellt Ihnen die drei Cluster-Modi von Redis vor – den Cluster-Cluster-Modus. Ich hoffe, dass er Freunden in Not hilfreich sein wird! Drei Redis-Cluster-Modi - Cluster-Cluster-Modus Um die höchste Leistung zu erzielen, führen wir den Redis-Cluster-Modus ein. 1. Redis-Cluster: Es gibt keinen zentralen Knoten, um 16348 Hash-Slots auf allen Knoten abzudecken CRC16 (KEY) & 16348 = Slot, um den entsprechenden Hash-Slot abzurufen,

und beim Zugriff auf den Schlüssel herauszufinden, auf welchem ​​Knoten sich sein Hash-Slot befindet, und dann wird dem aktuellen Zugriffsknoten tatsächlich dieser Hash-Slot zugewiesen, um Daten abzurufen Knoten nutzen eine leichtgewichtige Protokollkommunikation, um die Bandbreitennutzung zu reduzieren und eine hohe Leistung zu erzielen. Einführung in die drei Cluster-Modi von Redis (Cluster-Cluster-Modus)

Implementieren Sie automatisch Lastausgleich und Hochverfügbarkeit, implementieren Sie automatisch Failover und unterstützen Sie dynamische Erweiterungen.

B. Die Master-Slave-Konfiguration muss auch intern konfiguriert werden, und der Sentinel-Modus wird auch intern verwendet. Wenn die Hälfte der Knoten einen abnormalen Knoten findet, entscheiden sie gemeinsam, den Status des abnormalen Knotens zu ändern Der Knoten ist der Master-Knoten, der entsprechende Slave-Knoten ersetzt automatisch den Master-Knoten. Wenn der ursprüngliche Master-Knoten online geht, wird er zum Slave-Knoten.

Wenn der Master im Cluster keinen Slave-Knoten hat, wechselt der gesamte Cluster nach dem Tod des Masters in einen Fehlerzustand, da die Steckplatzzuordnung des Clusters unvollständig ist. Wenn mehr als die Hälfte der Master im Cluster ausfallen, wechselt der Cluster in den Fehlerzustand, unabhängig davon, ob Slaves vorhanden sind oder nicht.

C. Laut offiziellen Empfehlungen sind für die Clusterbereitstellung mindestens 3 Masterknoten erforderlich. Dann starten Sie die Bereitstellung

2. In jedem Pfad fügen wir die Konfigurationsdatei

hinzu: redis.conf

2. Clusterkonfiguration

 

  cd /usr/software/redis/redis -

cluster

/

1. Verzeichnis

/usr/software/redis/redis-cluster/1001

/usr/software/redis/redis-cluster/1002

/usr/software/redis/redis-cluster/1003

  /usr/software/redis/redis-cluster/1004

  /usr/software/redis/redis-cluster/1005

  /usr/software/redis/redis-cluster/1006 2 .Ändern Sie redis.conf

  cd /usr/software/redis/redis-cluster/1001

 vim redis.conf

  

#Ändern Sie die folgenden Schlüssel-Wert-Paare

 

################################## NETWORK #####################################
#bind 127.0.0.1protected-mode no
port 1001################################# GENERAL #####################################
daemonize yes
pidfile "/var/run/redis_1001.pid"logfile "/usr/software/redis/redis-cluster/1001/log/redis.log"################################ SNAPSHOTTING  ################################dir "/usr/software/redis/redis-cluster/1001/data"################################ REDIS CLUSTER  ###############################
cluster-enabled yes
cluster-config-file nodes-1001.conf
cluster-node-timeout 15000################################## SECURITY ###################################
requirepass "ww"
Nach dem Login kopieren

Ändern Sie die folgenden Konfigurationen in den Konfigurationsdateien mehrerer anderer Instanzen Das ist it (Sie müssen die Protokoll- und Datenverzeichnisse selbst erstellen):

port 100x"/var/run/redis_100x.pid" 
logfile "/usr/software/redis/redis-cluster/100x/log/redis.log""/usr/software/redis/redis-cluster/100x/data"-config-file nodes-100x.conf
Nach dem Login kopieren
3. Cluster-Startup

1. Verwenden Sie redis-server /usr/software/redis/redis-cluster/1001/redis.conf ... wird alle Der Knoten startet

2. Nach dem Start können wir den Cluster erstellen

Hinweis: Um einen Cluster nach redis5.0 zu erstellen, wird redis-cli verwendet. Die vorherige Version verwendet redis-trib.rb. Es muss jedoch Ruby-Software installiert werden. Sie ist relativ komplex und erfordert im Vergleich zur Vorgängerversion 5.0 keine Installation zusätzlicher Software. Weitere Informationen finden Sie auf der offiziellen Redis-Website

https://redis.io/topics/cluster-tutorial

Erstellen Sie einen Cluster-Befehl: wobei Cluster-Replicas 1 mehrere Slaves nach einem Master und 1 einen Slave-Knoten darstellt

redis-cli --cluster create 127.0.0.1:1001  127.0.0.1:1002 127.0.0.1:1003 127.0.0.1:1004 127.0.0.1:1005 127.0.0.1:1006 --cluster-replicas 1 -a ww
Nach dem Login kopieren

Das erste Mal, dass die Clustererstellung fehlgeschlagen ist, weil kein ww-Passwort festgelegt wurde.

Der folgende Inhalt wird während des Vorgangs abgefragt. Geben Sie „Ja“ ein, um fortzufahren. Ja‘ zum Akzeptieren: Ja

Die Ergebnisse der automatischen Clusterzuordnung lauten wie folgt:

3. Überprüfen Sie, ob der Cluster erfolgreich erstellt wurde

Überprüfen Sie zunächst die Master-Slave-Kopplungssituation

Ausführen: redis-cli -c -p 1001 -a ww

Die Daten werden automatisch dem 1002-Knoten zugewiesen und die Verbindung wird auch auf den 1002-Knoten übertragen

4. Failover überprüfen

Die Schlussfolgerung ist, dass nach dem Ausfall des Master-Knotens der untergeordnete Slave-Knoten zum Master-Knoten hochgestuft wird und den Steckplatz des Master-Knotens übernimmt. Nachdem der alte Master-Knoten online geschaltet wurde, kann er nur noch als Slave-Knoten fungieren.

Töten Sie 1001 und stellen Sie fest, dass er vom Knoten 1004 zum Master-Knoten konvertiert wurde

 

Starten Sie 1001 neu und er wird zum Slave-Knoten

 

Das obige ist der detaillierte Inhalt vonEinführung in die drei Cluster-Modi von Redis (Cluster-Cluster-Modus). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage