DBAtlas · Atlas d'exploitation des bases de données

Vérifier la santé du cluster et réparer les incohérences de slots (--cluster check/fix)

RedisCluster

Commande

redis-cli -h node1 -p 6379 CLUSTER INFO
redis-cli -h node1 -p 6379 CLUSTER NODES
redis-cli -h node1 -p 6379 CLUSTER SHARDS
# Slot coverage, open (migrating/importing) slots and node consistency:
redis-cli --cluster check node1:6379
# Repair if there are open or unowned slots:
redis-cli --cluster fix node1:6379
# Which slot and node a key lives on (-c: follow redirects):
redis-cli -h node1 -p 6379 CLUSTER KEYSLOT kullanici:1001
redis-cli -c -h node1 -p 6379 GET kullanici:1001

Ce que fait la commande

Vérifie que tous les nœuds voient la même carte des slots, que les 16384 slots sont tous attribués et qu'il n'y a pas de slots incomplets (migrating/importing) ; corrige les problèmes trouvés et indique sur quel slot/nœud se trouve une clé.

Quand l'utiliser

Quand cluster_state:fail apparaît, que les clients reçoivent CLUSTERDOWN ou des erreurs MOVED/ASK constantes, et après un reshard interrompu.

Attention

--cluster fix peut attribuer des slots sans propriétaire à des nœuds arbitraires et déplacer des clés dans des slots ouverts ; examinez d'abord la sortie du check. Si un master et tous ses réplicas sont perdus, les données de ces slots sont perdues ; fix se contente d'attribuer le slot vide à un autre nœud. Avec cluster-require-full-coverage yes (par défaut), un seul slot sans propriétaire arrête les écritures sur tout le cluster.

Ouvrir dans DBAtlas →

Voir aussi