Detaillierte Erläuterung der Konstruktion und Verwendung von Redis5-Clustern unter Linux (Centos7)

Detaillierte Erläuterung der Konstruktion und Verwendung von Redis5-Clustern unter Linux (Centos7)

1. Kurzbeschreibung

Im Oktober 2018 veröffentlichte Redis eine stabile Version 5.0, die verschiedene neue Funktionen einführte. Eine davon bestand darin, die Ruby-Clustermethode aufzugeben und auf die in C geschriebene Redis-CLI-Methode umzusteigen, was die Komplexität der Clusterkonstruktion erheblich reduzierte. Aktualisierungen des Clusters finden Sie in den Versionshinweisen zu Redis5 wie folgt:

Der Cluster-Manager wurde von Ruby (redis-trib.rb) auf C-Code in redis-cli portiert. Weitere Informationen finden Sie unter „redis-cli --cluster help“.

Auf der offiziellen Redis-Website erfahren Sie, wie Sie einen Cluster erstellen. Die Verbindung ist wie folgt

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

Es sollten mindestens drei Knoten im Cluster vorhanden sein, jeder mit einem Backup-Knoten. Erfordert 6 Server.

Wenn die Bedingungen eingeschränkt sind, können Sie ein pseudoverteiltes System erstellen. Die folgenden Schritte dienen zum Erstellen eines Redis-Clusters mit 6 Knoten auf einem Linux-Server.

2. Schritte zum Erstellen eines Clusters

2.1. Erstellen Sie ein Verzeichnis

Erstellen Sie ein neues Verzeichnis: mkdir /usr/local/redis-cluster

2.2. Laden Sie den Quellcode herunter und entpacken und kompilieren Sie

​wget http://download.redis.io/releases/redis-5.0.0.tar.gz
tar xzf redis-5.0.0.tar.gz
cd redis-5.0.0
machen
make install PREFIX=/usr/local/redis

3. Erstellen Sie 6 Redis-Konfigurationsdateien

Die sechs Konfigurationsdateien dürfen nicht im selben Verzeichnis liegen. Hier definieren wir sie wie folgt:

/root/software/redis/redis-cluster-conf/7001/redis.conf
/root/software/redis/redis-cluster-conf/7002/redis.conf
/root/software/redis/redis-cluster-conf/7003/redis.conf
/root/software/redis/redis-cluster-conf/7004/redis.conf
/root/software/redis/redis-cluster-conf/7005/redis.conf
/root/software/redis/redis-cluster-conf/7006/redis.conf

Einige Betriebsbefehle dienen nur zu Referenzzwecken:

cp redis.conf /usr/local/redis/bin
cd /usr/local/redis/
cp -r bin ../redis-cluster/redis01
cd /usr/local/redis-cluster/redis01
rm dump.rdb #Snapshot löschen vim redis.conf

Der Inhalt der Konfigurationsdatei ist:

Port 7001 #Port Cluster-aktiviert Ja #Cluster-Modus aktivieren Cluster-Konfigurationsdatei nodes.conf
cluster-node-timeout 5000 #Timeout nur anhängen ja
daemonize yes #im Hintergrund ausführen protected-mode no #non-protected mode pidfile /var/run/redis_7001.pid
bind 172.20.10.7 #Ändern Sie 127.0.0.1 in die lokale IP-Adresse. Sie können ifconfig verwenden, um die IP-Adresse anzuzeigen.

Der Port und die PID-Datei müssen entsprechend den verschiedenen Ordnern angepasst werden.

Erstellen Sie die restlichen 5 Instanzen:

[root@master redis-cluster]# cp -r redis01/ redis02
[root@master redis-cluster]# cp -r redis01/ redis03
[root@master redis-cluster]# cp -r redis01/ redis04
[root@master redis-cluster]# cp -r redis01/ redis05
[root@master redis-cluster]# cp -r redis01/ redis06

Ändern Sie den Port und die PID-Datei unter redis.conf von redis02 ~ redis06.

4. Starten Sie den Knoten

Geben Sie die Verzeichnisse redis01, redis02, ...redis06 entsprechend ein und führen Sie Folgendes aus: ./redis-server ./redis.conf

Erstellen Sie eine Batchdatei, um sechs Redis gleichzeitig zu starten

vim startall.sh

Fügen Sie den folgenden Inhalt hinzu:

CD Redis01
./redis-server redis.conf
CD ..
CD Redis02
./redis-server redis.conf
CD ..
CD Redis03
./redis-server redis.conf
CD ..
CD Redis04
./redis-server redis.conf
CD ..
CD Redis05
./redis-server redis.conf
CD ..
CD Redis06
./redis-server redis.conf
CD ..

Führen Sie dann chmod u+x start-all.sh aus, um start-all.sh in eine ausführbare Datei umzuwandeln

Starten Sie im aktuellen Verzeichnis: ./startall.sh

Ansicht: ps aux|grep redis

5. Starten Sie den Cluster

Da der von uns verwendete Cluster mit Version 5.0.0 von Redis erstellt wurde, müssen wir nur die Datei „redis-cli“ im kompilierten Redis-Verzeichnis in das Verzeichnis „redis-cluster“ kopieren. (Redis Version 5.0 und höher werden direkt mit der Sprache C gestartet)

/usr/local/redis-cluster/redis-cli --cluster erstellen 172.20.10.7:7001 172.20.10.7:7002 172.20.10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas 1

Nach dem Start wird die Erfolgsmeldung wie folgt angezeigt:

>>> Hash-Slot-Zuweisung auf 6 Knoten wird durchgeführt …
Master[0] -> Steckplätze 0 - 5460
Master[1] -> Steckplätze 5461 - 10922
Master[2] -> Plätze 10923 - 16383
Replikat 172.20.10.7:7004 zu 172.20.10.7:7001 hinzufügen
Replikat 172.20.10.7:7005 zu 172.20.10.7:7002 hinzufügen
Replikat 172.20.10.7:7006 zu 172.20.10.7:7003 hinzufügen
>>> Versuch, die Slave-Zuweisung für Anti-Affinität zu optimieren
[WARNUNG] Einige Slaves befinden sich im selben Host wie ihr Master
M: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001
 Steckplätze:[0-5460] (5461 Steckplätze) Master
M: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002
 Steckplätze:[5461-10922] (5462 Steckplätze) Master
M: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003
 Steckplätze:[10923-16383] (5461 Steckplätze) Master
S: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004
 Replikate a4128b5e581c3722acd9b093c5f29f5056f680b0
S: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005
 Replikate d6fed6f21269b8469a3076ac5fb168bd20f70c26
S: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006
 Replikate 51a0f62dacead745ce5351cdbe0bdbae553ce413
Kann ich die obige Konfiguration festlegen? (Geben Sie „Ja“ ein, um zu akzeptieren): ja

Geben Sie „yes“ ein und drücken Sie die Eingabetaste

>>> Knotenkonfiguration aktualisiert
>>> Jedem Knoten eine andere Konfigurationsepoche zuweisen
>>> Senden von CLUSTER MEET-Nachrichten zum Beitritt zum Cluster
Warten auf den Beitritt zum Cluster
......
>>> Clusterprüfung durchführen (mit Knoten 172.20.10.7:7001)
M: a4128b5e581c3722acd9b093c5f29f5056f680b0 172.20.10.7:7001
 Steckplätze:[0-5460] (5461 Steckplätze) Master
 1 zusätzliche Replik(en)
M: d6fed6f21269b8469a3076ac5fb168bd20f70c26 172.20.10.7:7002
 Steckplätze:[5461-10922] (5462 Steckplätze) Master
 1 zusätzliche Replik(en)
S: 45cc35740ac67f7988bb75325871ba12d08a76e4 172.20.10.7:7004
 Steckplätze: (0 Steckplätze) Slave
 Replikate a4128b5e581c3722acd9b093c5f29f5056f680b0
M: 51a0f62dacead745ce5351cdbe0bdbae553ce413 172.20.10.7:7003
 Steckplätze:[10923-16383] (5461 Steckplätze) Master
 1 zusätzliche Replik(en)
S: 668054fe16cdf8741152cae863f5c636ed18b803 172.20.10.7:7005
 Steckplätze: (0 Steckplätze) Slave
 Replikate d6fed6f21269b8469a3076ac5fb168bd20f70c26
S: ae39b7db285703f8c08412d6b04998c60a634295 172.20.10.7:7006
 Steckplätze: (0 Steckplätze) Slave
 Replikate 51a0f62dacead745ce5351cdbe0bdbae553ce413
[OK] Alle Knoten stimmen der Slot-Konfiguration zu.
>>> Nach freien Plätzen suchen...
>>> Slot-Abdeckung prüfen...
[OK] Alle 16384 Slots abgedeckt.

An diesem Punkt ist der Reids5-Cluster erstellt.

6. Clusterbetrieb

6.1. Den Cluster herunterfahren

Methode 1:

Redis5 stellt Tools zum Herunterfahren des Clusters zur Verfügung, die sich im folgenden Verzeichnis befinden:

/root/redis-5.0.0/utils/create-cluster

Öffnen Sie diese Datei und ändern Sie den Port wie unten gezeigt zu unserem eigenen:

Port PROT ist auf 7000 eingestellt, NODES auf 6 und das Tool fügt automatisch 1 hinzu, um sechs Knoten 7001-7006 für den Betrieb zu generieren.

Schauen Sie nach unten, ändern Sie den Pfad und fügen Sie die IP-Adresse hinzu. Wenn Sie sie nicht hinzufügen, wird die lokale Standardadresse 127.0.0.1 verwendet.

Führen Sie nach der Änderung den folgenden Befehl aus, um den Cluster herunterzufahren:

/root/redis-5.0.0/utils/create-cluster/create-cluster stop

Methode 2:

Schreiben Sie eine Skriptdatei in das Verzeichnis „create-cluster“: vim shutdown.sh
Der Inhalt ist wie folgt:

/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7001 Herunterfahren
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7002 herunterfahren
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7003 herunterfahren
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7004 herunterfahren
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7005 herunterfahren
/usr/local/redis-cluster/redis-cli -c -h 172.20.10.7 -p 7006 herunterfahren

Führen Sie dann chmod u+x shutdown.sh aus, um shutdown.sh in eine ausführbare Datei umzuwandeln

Starten Sie im aktuellen Verzeichnis: ./shutdown.sh

Ansicht: ps aux|grep redis

Offiziell: /usr/local/redis-cluster/redis-cli -a xxx -c -h 192.168.5.100 -p 8001

Tipps: -a greift auf das Serverkennwort zu, -c gibt den Clustermodus an, -h gibt die IP-Adresse an, -p gibt die Portnummer an

6.2. Starten Sie den Cluster neu

/root/redis-5.0.0/utils/create-cluster/create-cluster start

6.3. Starten Sie den Cluster mit Skriptdateien

vim startall.sh fügt den folgenden Inhalt hinzu: (denken Sie daran, Ihre eigene IP-Adresse zu ändern)

/usr/local/redis-cluster/redis-cli --cluster erstellen 172.20.10.7:7001 172.20.10.7:7002 172.20.10.7:7003 172.20.10.7:7004 172.20.10.7:7005 172.20.10.7:7006 --cluster-replicas

Start: ./startall.sh

7. Testcluster

Ausführen im Redis-Cluster-Verzeichnis

redis01/redis-cli -h 192.168.25.153 -p 7002 -c

Dabei bedeutet -c die Verbindung zu Redis im Clustermodus , -h gibt die IP-Adresse an und -p gibt die Portnummer an

Cluster-Knoten Abfrage von Cluster-Knoten-Informationen

Cluster-Info, Abfrage der Cluster-Statusinformationen

Zusammenfassen

Oben finden Sie eine ausführliche Erklärung des Herausgebers zum Aufbau und zur Verwendung des Redis5-Clusters unter Linux (Centos7). Ich hoffe, dass sie für alle hilfreich ist. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der drei Möglichkeiten zum Erstellen eines Redis-Clusters
  • Methode zum Erstellen eines Redis-Clusters basierend auf Docker
  • Verwenden Sie Docker, um einen Redis-Master-Slave-Replikationscluster zu erstellen
  • Automatischer Installations- und Clusterimplementierungsprozess von Redis
  • Beispiel für den Aufbau eines Redis-Sentinel-Clusters basierend auf Docker
  • Redis-Cluster-Konstruktionsprozess (sehr detailliert, für Anfänger geeignet)

<<:  Tutorial zur Migration von MySQL von phpstudy nach Linux

>>:  Erkunden Sie die Implementierung der Datenfreigabe und Methodenfreigabe für JavaScript-Prototypen

Artikel empfehlen

Verwenden Sie Javascript, um eine dynamische QQ-Registrierungsseite zu erstellen

Inhaltsverzeichnis 1. Einleitung 1. Grundlayout 2...

Eine kurze Analyse des MySQL-Index

Ein Datenbankindex ist eine Datenstruktur, deren ...

So zeigen Sie den Datenbankinstallationspfad in MySQL an

Wir können den Installationspfad von MySQL über d...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.18

In diesem Artikel wird das grafische Tutorial zur...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Details zur Verwendung von JS-Array-Methoden some, every und find

Inhaltsverzeichnis 1. einige 2. jedes 3. finden 1...

js, um einen simulierten Einkaufszentrumsfall zu erreichen

Freunde, die HTML-, CSS- und JS-Frontend lernen, ...

MySQL ruft die aktuelle Datums- und Uhrzeitfunktion ab

Holen Sie sich das aktuelle Datum + die aktuelle ...

So konfigurieren Sie mehrere Projekte mit demselben Domänennamen in Nginx

Es gibt zwei Möglichkeiten, mit Nginx mehrere Pro...

HTML-Tutorial: Sammlung häufig verwendeter HTML-Tags (6)

Diese eingeführten HTML-Tags entsprechen nicht un...

Vergleich der Verwendung von EXISTS und IN in MySQL

1. Verwendung: (1) EXISTS-Nutzung Wählen Sie a.ba...