Ajouter des nœuds, déplacer des slots et retirer des nœuds d'un cluster (add-node, reshard, rebalance)
RedisClusterCommande
# 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>Ce que fait la commande
Ajoute un nouveau master ou réplica au cluster, déplace en ligne des slots et leurs clés entre nœuds, rééquilibre automatiquement la répartition des slots et retire du cluster un nœud vidé.
Quand l'utiliser
Pour faire évoluer horizontalement la mémoire/le débit, répartir la charge d'un nœud chaud, ou décommissionner un nœud.
Attention
La migration de slots transfère les clés une par une avec MIGRATE ; pendant le déplacement de grosses clés, les deux nœuds peuvent se bloquer brièvement. Pendant la migration, les clients reçoivent des redirections ASK ; un client compatible cluster est nécessaire. Si un reshard est interrompu, les slots restent à l'état migrating/importing ; terminez-le avec --cluster fix. Ne retirez pas avec del-node un master qui possède encore des slots ; déplacez d'abord ses slots.