DBAtlas · Atlas für Datenbankbetrieb

Knoten hinzufügen, Slots verschieben und Knoten aus einem Cluster entfernen (add-node, reshard, rebalance)

RedisCluster

Befehl

# Add the new master to the cluster (joins empty, with no slots):
redis-cli --cluster add-node node7:6379 node1:6379
# Attach a new replica to a specific master:
redis-cli --cluster add-node node8:6379 node1:6379 --cluster-slave --cluster-master-id <master-node-id>
# Move 1000 slots from all masters to the new node:
redis-cli --cluster reshard node1:6379 --cluster-from all --cluster-to <node7-id> --cluster-slots 1000 --cluster-yes
# Or rebalance automatically (give slots to empty masters too):
redis-cli --cluster rebalance node1:6379 --cluster-use-empty-masters
# Remove a node whose slots have been emptied:
redis-cli --cluster del-node node1:6379 <node-id>

Was es tut

Fügt dem Cluster einen neuen Master oder eine Replica hinzu, verschiebt Slots samt ihren Keys online zwischen Knoten, gleicht die Slot-Verteilung automatisch aus und entfernt einen geleerten Knoten aus dem Cluster.

Wann einsetzen

Beim horizontalen Skalieren von Speicher/Durchsatz, beim Verteilen der Last eines heißen Knotens oder beim Außerbetriebnehmen eines Knotens.

Vorsicht

Die Slot-Migration überträgt Keys einzeln mit MIGRATE; während große Keys verschoben werden, können beide Knoten kurz blockieren. Während der Migration erhalten Clients ASK-Redirects; ein clusterfähiger Client ist erforderlich. Wird ein Reshard unterbrochen, bleiben Slots im Zustand migrating/importing; mit --cluster fix abschließen. Entferne einen Master, der noch Slots besitzt, nicht mit del-node; verschiebe zuerst seine Slots.

In DBAtlas öffnen →

Verwandte Einträge