Heim  >  Artikel  >  Datenbank  >  Tutorial für Anfänger zum Aufbau von Redis-Clustern

Tutorial für Anfänger zum Aufbau von Redis-Clustern

王林
王林nach vorne
2021-01-04 09:28:022026Durchsuche

Tutorial für Anfänger zum Aufbau von Redis-Clustern

Redis-Cluster-Konstruktion

(Lernvideo-Sharing: Redis-Video-Tutorial)

Bevor wir den formalen Inhalt vorstellen, stellen wir zunächst die Schritte zum Erstellen der eigenständigen Redis-Version vor.

  1. Laden Sie das komprimierte Redis-Paket herunter und dekomprimieren Sie die komprimierte Datei.
  2. Geben Sie das Verzeichnis der dekomprimierten Redis-Datei ein (Sie können jetzt die Makefile-Datei sehen) und kompilieren Sie die Redis-Quelldatei Wenn im Verzeichnis /usr/local/redis kein Redis-Verzeichnis vorhanden ist, wird automatisch ein neues Redis-Verzeichnis erstellt.
  3. Geben Sie das Verzeichnis /usr/local/redis/bin ein und starten Sie Redis direkt mit ./redis-server (das ist das Front-End) Starten Sie Redis);
  4. Ändern Sie den Redis-Startmodus auf Back-End-Start. Die spezifische Methode lautet: Kopieren Sie die Datei redis.conf unter der dekomprimierten Redis-Datei nach /usr/. local/redis/bin-Verzeichnis und ändern Sie dann die Datei redis.conf -> daemonize: no Ändern Sie daemonize: yse
  5. Starten Sie Redis über ./redis-server redis.conf im Verzeichnis /bin (es wird im Hintergrund gestartet). diesmal).
  6. Zusammenfassend ist die Installation und der Start der Redis-Standalone-Version abgeschlossen.
  7. Ausführliche Schritte mit Bildern finden Sie unter -> Erste Schritte mit Redis.

    Bitte verzeihen Sie, dass ich ausführlich bin. Ok, kehren wir zu diesem Thema zurück – Aufbau eines Redis-Clusters!
1. Einführung in Redis Cluster

redis ist ein Open-Source-Speichersystem für Schlüsselwerte, das von der Mehrheit der Internetunternehmen bevorzugt wird. Vor Redis Version 3.0 unterstützte es nur den Singleton-Modus und nur Cluster in Version 3.0.0.
  • Redis-Cluster verwendet den P2P-Modus, der vollständig dezentralisiert ist Agent-Knoten:
  • Der Redis-Cluster verfügt über keinen einheitlichen Eingang. Wenn sich der Client mit jedem Knoten im Cluster verbindet, kann er miteinander kommunizieren (PING-PONG-Mechanismus). Knoten ist eine Redis-Instanz;
  • Um eine hohe Verfügbarkeit des Clusters zu erreichen, dh um festzustellen, ob der Knoten fehlerfrei ist (ob er normal verwendet werden kann), verfügt Redis-Cluster über einen solchen Abstimmungsfehlertoleranzmechanismus: Wenn mehr Mehr als die Hälfte der Knoten im Cluster stimmen dafür, dass ein bestimmter Knoten ausfällt. Wenn ein Knoten ausfällt, ist dieser Knoten ausgefallen (ausgefallen). Dies ist eine Methode, um festzustellen, ob ein Knoten ausgefallen ist Cluster ist ausgefallen. Auf diese Weise können Sie feststellen, ob der Cluster ausgefallen ist.
  • Warum fällt der Cluster aus, wenn ein Knoten ausgefallen ist (es gibt keinen Slave-Knoten)? -> Weil der Cluster über 16384 integrierte Slots (Hash-Slots) verfügt und alle physischen Knoten diesen 16384[0-16383] Slots zugeordnet sind oder diese Slots gleichmäßig auf jeden Knoten verteilt sind. Wenn ein Datenelement (Schlüsselwert) im Redis-Cluster gespeichert werden muss, führt Redis zunächst den crc16-Algorithmus für den Schlüssel aus und erhält dann ein Ergebnis. Berechnen Sie dann den Rest dieses Ergebnisses zu 16384. Dieser Rest entspricht einem der Slots [0-16383] und bestimmen Sie dann, in welchem ​​Knoten der Schlüsselwert gespeichert ist. Sobald ein Knoten hängt, kann daher der dem Knoten entsprechende Steckplatz nicht verwendet werden, was dazu führt, dass der Cluster nicht ordnungsgemäß funktioniert.
  • Zusammenfassend lässt sich sagen, dass jeder Redis-Cluster theoretisch bis zu 16384 Knoten haben kann.
  • 2. Für den Clusteraufbau erforderliche Umgebung
2.1 Redis-Cluster erfordert mindestens 3 Knoten, da der Abstimmungsfehlertoleranzmechanismus erfordert, dass mehr als die Hälfte der Knoten annimmt, dass ein Knoten ausgefallen ist, bevor der Knoten ausgefallen ist, also 2 Knoten können keinen Cluster bilden.

2.2 Um die hohe Verfügbarkeit des Clusters sicherzustellen, muss jeder Knoten über einen Slave-Knoten, also einen Backup-Knoten, verfügen, sodass der Redis-Cluster mindestens 6 Server benötigt. Da ich nicht so viele Server habe und nicht so viele virtuelle Maschinen starten kann, baue ich hier einen pseudoverteilten Cluster, das heißt, ein Server führt virtuell sechs Redis-Instanzen aus und die Portnummer wird geändert bis (7001-7006) Die eigentliche Produktionsumgebung ist natürlich die gleiche wie hier. 2.3 Ruby ​​installieren
3. Die spezifischen Schritte zum Erstellen des Clusters sind wie folgt (Hinweis zum Ausschalten der Firewall)

3.1 Erstellen Sie ein neues Redis-Cluster-Verzeichnis unter dem Verzeichnis usr/local, um Clusterknoten zu speichern
3.2 Ändern Sie das bin-Verzeichnis im Redis-Verzeichnis. Kopieren Sie alle Dateien im Verzeichnis /usr/local/redis-cluster/redis01. Keine Sorge, es gibt hier kein redis01-Verzeichnis, es wird automatisch erstellt. Der Operationsbefehl lautet wie folgt (beachten Sie den aktuellen Pfad):

cp -r redis/bin/ redis-cluster/redis01

Tutorial für Anfänger zum Aufbau von Redis-Clustern
3.3 Löschen Sie die Snapshot-Datei dump.rdb im Verzeichnis redis01 und ändern Sie die Datei redis.cnf im Verzeichnis. Ändern Sie insbesondere zwei Stellen: Eine dient zum Ändern der Portnummer in 7001 und die andere zum Aktivieren Cluster-Erstellungsmodus und offene Kommentare. Das war's. Wie in der Abbildung unten gezeigt:
Löschen Sie die Datei dump.rdb
Tutorial für Anfänger zum Aufbau von Redis-Clustern
Ändern Sie die Portnummer auf 7001, der Standardwert ist 6379
Tutorial für Anfänger zum Aufbau von Redis-Clustern
Öffnen Sie den Kommentar von Cluster-aktiviert ja
Tutorial für Anfänger zum Aufbau von Redis-Clustern
3.4 Kopieren Sie 5 Kopien der Redis- Datei „cluster/redis01“ im Verzeichnis „redis-cluster“ (redis02-redis06) erstellen Sie 6 Redis-Instanzen, um 6 Knoten des Redis-Clusters zu simulieren. Ändern Sie dann die Portnummern in redis.conf unter den verbleibenden fünf Dateien in 7002-7006. Wie in der Abbildung unten gezeigt:
Erstellen Sie das Verzeichnis redis02-06
Tutorial für Anfänger zum Aufbau von Redis-Clustern

Ändern Sie die Portnummer der Datei redis.conf jeweils auf 7002-7006
Tutorial für Anfänger zum Aufbau von Redis-Clustern
3.5 Starten Sie dann alle Redis-Knoten, da das Starten einzeln zu mühsam ist. Erstellen Sie sie hier. Eine Skriptdatei zum stapelweisen Starten von Redis-Knoten. Der Inhalt der Datei lautet wie folgt:

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 ..

3.6 Nach dem Erstellen der Startskriptdatei müssen Sie die Berechtigungen ändern Skript, damit es ausgeführt werden kann. Die Anweisungen lauten wie folgt:

chmod +x start-all.sh

Tutorial für Anfänger zum Aufbau von Redis-Clustern

3.7 Führen Sie das start-all.sh-Skript aus, um 6 Redis-Knoten zu starten.
Tutorial für Anfänger zum Aufbau von Redis-Clustern
3.8 Ok, jetzt sind die 6 Redis-Knoten erfolgreich gestartet, und dann wird der Cluster offiziell gestartet. Die oben genannten Vorbereitungsbedingungen sind. Denken Sie nicht, dass es problematisch ist, da die Bilder langwierig aussehen. Tatsächlich sind die obigen Schritte nur ein Satz: Erstellen Sie 6 Redis-Instanzen (6 Knoten) und starten Sie sie.
Um einen Cluster zu erstellen, müssen Sie ein Tool (Skriptdatei) verwenden, das sich im Quellcode der Redis-Dekomprimierungsdatei befindet. Da es sich bei diesem Tool um eine Ruby-Skriptdatei handelt, ist für die Ausführung dieses Tools eine Ruby-Laufumgebung erforderlich, was der Ausführung der Java-Sprache auf der JVM entspricht. Sie müssen also Ruby installieren:

yum install ruby

Dann müssen Sie Ruby-bezogene Pakete auf dem Server installieren. Ich verwende hier redis-3.0.0.gem. Die Version von Redis und die Version des Ruby-Pakets sind die wichtigsten, um konsistent zu sein.

Installieren Sie das Ruby-Paket auf dem Server: Sie müssen es zuerst herunterladen und dann installieren, wie im Bild gezeigt
Tutorial für Anfänger zum Aufbau von Redis-Clustern
Der Installationsbefehl lautet wie folgt:

gem install redis-3.0.0.gem

Tutorial für Anfänger zum Aufbau von Redis-Clustern

3.9 Im vorherigen Schritt wurde ausgeführt Nachdem die für das Ruby-Tool erforderliche Umgebung und das Ruby-Paket installiert wurden, müssen Sie dieses Ruby-Skript-Tool in das Verzeichnis usr/local/redis-cluster kopieren. Wo ist dieses Ruby-Skript-Tool? Wie bereits erwähnt, befindet sich im Quellcode die Redis-Dekomprimierungsdatei, also die Datei redis-trib.rb im Verzeichnis redis/src.
Tutorial für Anfänger zum Aufbau von Redis-Clustern
Tutorial für Anfänger zum Aufbau von Redis-Clustern
3.10 Kopieren Sie das Ruby-Tool (redis-trib.rb) in das Redis-Cluster-Verzeichnis. Die Anweisungen lauten wie folgt:

cp redis-trib.rb /usr/local/redis-cluster

Verwenden Sie dann die Skriptdatei, um den Cluster zu erstellen :

./redis-trib.rb create --replicas 1 47.106.219.251:7001 47.106.219.251:7002 47.106.219.251:7003 47.106.219.251:7004 47.106.219.251:7005 47.106.219.251:7006

Hinweis: Hier sollte jeder die entsprechende IP-Adresse entsprechend seiner eigenen Server-IP eingeben!

Tutorial für Anfänger zum Aufbau von Redis-Clustern

Es gibt eine Stelle, an der Sie manuell Ja eingeben müssen
Tutorial für Anfänger zum Aufbau von Redis-Clustern
An diesem Punkt ist der Redi-Cluster erfolgreich eingerichtet! Bitte beachten Sie den letzten Textabsatz, der die jedem Knoten zugewiesenen Slots (Hash-Slots) zeigt. Es gibt hier insgesamt 6 Knoten, von denen 3 Slave-Knoten sind, sodass die 3 Master-Knoten 0-5460, 5461 abbilden -10922, 10933-16383solts.

3.11 Stellen Sie schließlich eine Verbindung zum Clusterknoten her, stellen Sie einfach eine Verbindung zu einem beliebigen Knoten her:

redis01/redis-cli -p 7001 -c

注意:一定要加上-c,不然节点之间是无法自动跳转的!如下图可以看到,存储的数据(key-value)是均匀分配到不同的节点的:

Tutorial für Anfänger zum Aufbau von Redis-Clustern

四、结语
呼~~~长舒一口气…终于搭建好了Redis集群。
整个过程其实挺简单,本篇主要正对入门级别的小伙伴,插入了很多图片,所以显得冗长,希望大家多多理解,如果不当之处,还望及时指正~

最后,加上两条redis集群基本命令:
1.查看当前集群信息

cluster info

2.查看集群里有多少个节点

cluster nodes

相关推荐:redis数据库教程

Das obige ist der detaillierte Inhalt vonTutorial für Anfänger zum Aufbau von Redis-Clustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen