Sobes.tech
Senior

Peut-on faire évoluer un cluster Redis en temps réel en ajoutant des shards à la volée?

sobes.tech IA

Réponse de l'IA

Dans Redis Cluster, il est possible d’ajouter de nouveaux shards (nœuds) pour la mise à l’échelle, mais ce n’est pas tout à fait "à la volée" dans le sens classique. Le processus nécessite certaines opérations : ajouter de nouveaux nœuds au cluster et redistribuer les slots (resharding) entre eux.

Lors de l’ajout d’un nouveau shard, il faut :

  • Démarrer une nouvelle instance Redis compatible avec le cluster.
  • L’ajouter au cluster existant avec la commande CLUSTER MEET.
  • Redistribuer les slots des nœuds existants vers le nouveau, en utilisant des commandes comme CLUSTER SETSLOT ou des outils spécifiques (par exemple, redis-trib ou redis-cli --cluster).

Ce processus prend du temps et peut impacter la performance, car il implique une migration de données entre les nœuds. Il n’existe pas de mise à l’échelle totalement transparente et instantanée sans impact sur le fonctionnement du cluster.

Exemple de commande pour ajouter un nœud au cluster :

redis-cli --cluster add-node <nouvelle-ip-du-nœud>:6379 <ip-du-nœud-existant>:6379
redis-cli --cluster reshard <ip-du-nœud-existant>:6379

Ainsi, la mise à l’échelle est possible, mais nécessite de la planification et un certain temps pour la redistribution des données.