In diesem Schritt lernen Sie, wie Sie Slots in einem Redis-Cluster mit dem Befehl redis-cli --cluster reshard re-sharden (neu verteilen). Dies ist wichtig, um Daten gleichmäßig zu verteilen, insbesondere nach dem Hinzufügen neuer Knoten.
Ein Redis-Cluster unterteilt den Keyspace in 16384 Slots. Jeder Master-Knoten ist für eine Teilmenge dieser Slots verantwortlich. Wenn Sie einen neuen Knoten hinzufügen, besitzt dieser anfänglich keine Slots. Resharding verschiebt Slots von bestehenden Knoten zum neuen Knoten, wodurch die Daten und die Arbeitslast ausgeglichen werden.
-
Mit dem Cluster über redis-cli --cluster verbinden:
Um die Resharding-Operation durchzuführen, verwenden Sie den Befehl redis-cli --cluster reshard. Dieser Befehl bietet eine interaktive Möglichkeit, Slots im Cluster neu zu verteilen.
Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:
redis-cli --cluster reshard 127.0.0.1:7000
Dieser Befehl verbindet sich mit dem Redis-Cluster über den Knoten unter 127.0.0.1:7000 und startet den Resharding-Prozess.
-
Die Anzahl der zu verschiebenden Slots angeben:
Das redis-cli-Tool fordert Sie auf, die Anzahl der Slots einzugeben, die Sie verschieben möchten. Für dieses Beispiel verschieben wir 101 Slots zum neuen Knoten.
How many slots do you want to move? (default: all)
Geben Sie 101 ein und drücken Sie die Eingabetaste.
-
Die Zielknoten-ID eingeben:
Als Nächstes fordert das Tool Sie auf, die Knoten-ID (Node ID) des Zielknotens einzugeben. Dies ist der neue Knoten, den Sie im vorherigen Schritt hinzugefügt haben (Port 7006). Um die Knoten-ID zu finden, können Sie den Befehl CLUSTER NODES verwenden, wie in den vorherigen Schritten gezeigt, oder Sie können den folgenden Befehl verwenden, um die Knoten-ID direkt abzurufen:
redis-cli -h 127.0.0.1 -p 7006 cluster nodes | grep myself | awk '{print $1}'
Kopieren Sie die Knoten-ID aus der Ausgabe. Das redis-cli-Tool fordert Sie auf:
What is the receiving node ID?
Fügen Sie die Knoten-ID ein und drücken Sie die Eingabetaste.
-
Die Quellknoten angeben:
Das Tool fordert Sie auf, die Quellknoten anzugeben, von denen die Slots übernommen werden sollen. Sie können all eingeben, um Slots von allen vorhandenen Master-Knoten neu zu verteilen.
Please enter all the source node IDs.
Type 'all' to use all the nodes as source nodes for the hash slots.
Type 'done' to stop entering IDs.
Geben Sie all ein und drücken Sie die Eingabetaste.
-
Den Resharding-Plan bestätigen:
Das redis-cli-Tool zeigt den Resharding-Plan an und fordert Sie auf, ihn zu bestätigen.
Do you want to proceed with the reshard plan? (type 'yes' to accept):
Geben Sie yes ein und drücken Sie die Eingabetaste, um den Resharding-Prozess zu starten.
-
Warten, bis das Resharding abgeschlossen ist:
Das redis-cli-Tool verschiebt nun die Slots von den Quellknoten zum Zielknoten. Dieser Vorgang kann einige Zeit dauern, abhängig von der Datenmenge im Cluster. Sie sehen Fortschrittsmeldungen, während die Slots verschoben werden.
-
redis-cli beenden: