DBAtlas · Atlas de operaciones de bases de datos

Añadir nodos, mover slots y quitar nodos en un clúster (add-node, reshard, rebalance)

RedisClúster

Comando

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

Qué hace

Añade un nuevo master o réplica al clúster, mueve slots y sus claves entre nodos en línea, reequilibra automáticamente la distribución de slots y quita del clúster un nodo vaciado.

Cuándo usarlo

Al escalar horizontalmente la memoria/el throughput, al repartir la carga de un nodo caliente o al retirar un nodo.

Precaución

La migración de slots transfiere las claves una a una con MIGRATE; mientras se mueven big keys, ambos nodos pueden bloquearse brevemente. Durante la migración los clientes reciben redirecciones ASK; se requiere un cliente compatible con cluster. Si se interrumpe un reshard, los slots quedan en estado migrating/importing; complételo con --cluster fix. No quite con del-node un master que aún tiene slots; mueva antes sus slots.

Abrir en DBAtlas →

Relacionado