Méthode détaillée d'ajout et de suppression de nœuds dans Redis cluster_Redis

2020-02-14

Avant-propos

Cet article est principalement basé sur l'article précédent. Après l'installation hors ligne réussie du cluster Redis, comment ajouter de nouveaux nœuds maître et esclave au cluster (expansion de cluster) et supprimer des nœuds du cluster (réduction de cluster), c'est-à-dire le cluster Le principe de la mise à l'échelle du cluster est de contrôler le mouvement des emplacements virtuels et des données entre les nœuds, et d'organiser la mise à l'échelle du cluster à travers des opérations réelles.

Le cluster créé dans l'article précédent est composé de trois maîtres et de trois esclaves, et les numéros de port sont 7000, 7001, 7002, 7003, 7004 et 7005.

Afficher le démarrage du cluster: ps -ef | grep redis

< / p>

Affichez l’allocation d’emplacement du cluster et la relation maître-esclave entre les nœuds:

Connectez-vous d'abord au nœud 7000: redis-cli -p 7000 -h 192.168.182.132 -c // Attention à ne pas perdre -c

nœuds de cluster Afficher les informations sur les nœuds de cluster

Dans cet exemple, nous ajoutons d'abord deux nœuds: le nœud maître 7006 et le nœud esclave 7007, et allouons 4096 emplacements à 7006, définissons 7007 comme nœud esclave de 7006, puis supprimons ces deux nœuds du cluster. Assurez-vous de supprimer d'abord le nœud maître, puis les nœuds esclaves, sinon le basculement prendra effet.

I. Extension de cluster

1. Préparez le nouveau nœud

Ajoutez les répertoires redis7006 et redis7007 au répertoire du cluster répertoire redis_cluster

mkdir redis7006

mkdir redis7007

Ajouter un répertoire une fois terminé

< / p>

Copiez le fichier de configuration redis.conf du port 7000 dans les répertoires redis7006 et redis7007 et modifiez le port du fichier de configuration sur le numéro de port du répertoire correspondant.

Par exemple, le contenu du fichier redis.conf sous redis7006 est:


 port 7006
 lier 192.168.182.132 // IP locale
 daemonize yes // Défini pour s'exécuter en arrière-plan
 pidfile /var/run/redis-7006.pid
 activé pour le cluster oui // Activer le cluster
 cluster-config-file node-7006.conf
 cluster-node-timeout 15000
 seulement oui 
 

Après la préparation, démarrez deux nouveaux nœuds redis:


 serveur redis redis7006 / redis.conf

 serveur redis redis7007 / redis.conf

 ps -ef | grep redis // Vérifier si le nouveau nœud redis a démarré avec succès 
 

< / p>

Connectez-vous au 7006 pour vérifier l'état du nœud après le démarrage:


 redis-cli -p 7006 -h 192.168.182.132 -c

 nœuds de cluster 
 

< / p>

2. Ajouter un nœud maître

(1) Ajoutez le nœud 7006 au cluster. Assurez-vous qu'aucune donnée n'a été ajoutée au nœud.


 Cd / usr / local / redis / redis / src

 ./redis-trib.rb add-node 192.168.182.132:7006 192.168.182.132:7000
  // Le premier nœud est un nœud nouvellement ajouté Le deuxième nœud est un nœud du cluster 
 

Ajouté avec succès:

< / p>

Vous pouvez voir que le nœud est ajouté à l'aide de la commande addnode. Le premier paramètre est l'adresse du nouveau nœud et le deuxième paramètre est l'IP et le port de tout nœud existant. Nous pouvons voir que le nouveau nœud a été ajouté au cluster. Moyen:

< / p>

Le nouveau nœud 7006 est maintenant connecté au cluster et fait partie du cluster, et peut rediriger les demandes de commandes du client, mais par rapport aux autres nœuds maîtres, le nouveau nœud présente deux différences:

Le nouveau nœud ne contient aucune donnée car il ne contient aucun emplacement de hachage. Bien que le nouveau nœud ne contienne aucun emplacement de hachage, il est toujours un nœud maître, donc un nœud esclave doit être mis à niveau vers un nouveau dans le cluster Lorsque le nœud maître, ce nouveau nœud ne sera pas sélectionné.

Ensuite, utilisez simplement le processus redis-tribDéplacez des compartiments de hachage du cluster vers le nouveau nœud, et le nouveau nœud deviendra le véritable nœud maître.

(2) Attribuer un emplacement virtuel au nœud maître 7006


 cd / usr / local / redis / redis / src

 ./redis-trib.rb reshard 192.168.182.132:7001 // Peut être n'importe quel nœud 7001 connecté ici uniquement accessible en tant que client 
 

< / p>

Après exécution:

Parce que nous ajoutons 7006 comme nœud maître, il y a quatre nœuds maîtres au total. Afin de répartir uniformément, nous devons allouer 16384 divisé par 4 égal à 4096 nœuds, nous entrons donc 4096 et appuyez sur Entrée pour continuer:

< / p>

Saisissez l'ID de nœud 7006 et appuyez sur Entrée pour continuer:

< / p>

À partir de quels nœuds maîtres sont les emplacements extraits dans le nouveau nœud: tout est tous les nœuds maîtres, fait: le nœud spécifié, ici nous entrons tous et appuyez sur Entrée pour continuer:

< / p>

Après avoir saisi oui, appuyez sur entrée pour commencer à allouer des emplacements virtuels à 7006. Une fois l'allocation terminée:

< / p>

Connectez-vous au cluster et vérifiez l'état du cluster:


 redis-cli -p 7000 -h 192.168.182.132 -c

 nœuds de cluster 
 

< / p>

À ce stade, le nœud maître a été ajouté et notre cluster est passé de trois maîtres à trois esclaves à quatre maîtres et trois esclaves.

3. Ajoutez le nœud esclave 7007

(1) Ajouter un nouveau nœud en utilisant add-node


 Cd / usr / local / redis / redis / src

 ./redis-trib.rb add-node 192.168.182.132:7007 192.168.182.132:7000
  // Le premier nœud est un nœud nouvellement ajouté Le deuxième nœud est un nœud du cluster 
 

Rejoignez le cluster avec succès, connectez-vous au cluster pour vérifier l'état du cluster:

< / p>

7007 est également un nœud maître et n'a pas son propre emplacement. Ensuite, nous devons en faire un esclave.

(2) 7007 devient 7006 nœud esclave

Utilisez la commande CLUSTER REPLICATE pour modifier le nœud maître d'un nœud esclave.


 redis-cli -p 7007 -h 192.168.182.132

 réplication de cluster 52d169e7011ccdf10f99c1d83f92409dcc37ab55 // La chaîne suivante est l'ID de nœud du nœud 7006 
 

Vérifiez-le après une installation réussie:

< / p>

Le nœud esclave 7007 du cluster a été ajouté avec succès.

Deux, mise à l'échelle du cluster

Utilisez simplement la commande del-node:


 ./redis-trib del-node 127.0.0.1:7000 
 Le premier paramètre est l'adresse de n'importe quel nœud et le deuxième nœud est l'adresse du nœud que vous souhaitez supprimer.  
 

Utilisez la même méthode pour supprimer le nœud maître, mais avant de supprimer le nœud maître, vous devez vous assurer que le nœud maître est vide. S'il n'est pas vide, vous devez réaffecter les données de ce nœud à d'autres nœuds maîtres.

La méthode alternative de suppression du nœud maître consiste à effectuer manuellement la récupération. Le nœud maître supprimé existera en tant que nœud esclave, mais dans ce cas, le nombre de nœuds de cluster ne sera pas réduit et les données devront être réaffectées. / code]

1. Supprimez les nœuds esclaves

Supprimez le nœud avec la commande del-node. Cette commande doit spécifier l'IP et le port du nœud supprimé, ainsi que l'ID du nœud.


 cd / usr / local / redis / redis / src

 ./redis-trib.rb del-node 192.168.182.132:7007 7007 ID de nœud 
 

Après une suppression réussie:

< / p>

Après la suppression, nous vérifions à nouveau les informations sur les nœuds du cluster. Comme indiqué ci-dessous, le nœud esclave 7007 a été supprimé.

< / p>

2. Supprimez le nœud maître

(1) Attribuez les emplacements du nœud maître 7006 à d'autres nœuds maîtres


 Cd / usr / local / redis / redis / src

 ./Redis-trib.rb reshard 192.168.182.132:7006 
 

< / p>

Après avoir sélectionné ces éléments, appuyez sur Entrée pour continuer:

< / p>

Entrez oui, ce qui signifie accepter le plan, puis appuyez sur Entrée pour terminer la suppression de l'emplacement au nœud 6006.

Connectez-vous au cluster pour afficher la situation actuelle du cluster:

< / p>

Il n'y a pas d'emplacement sur le noeud 7006.

(2) Utilisez la commande del-node pour supprimer le nœud maître 7006.


 cd / usr / local / redis / redis / src

 ./redis-trib.rb del-node 192.168.182.132:7006 52d169e7011ccdf10f99c1d83f92409dcc37ab55 
 

Suppression réussie:

< / p>

Enfin, connectez-vous pour vérifier que le cluster est revenu à la structure trois maîtres-trois esclaves, mais il est passé de la distribution régulière au début au nœud maître du port 7000 avec plus de 4096 emplacements.

Résumé

Ce qui précède est le contenu entier de cet article. J'espère que le contenu de cet article aura une certaine référence et valeur d'apprentissage pour l'étude ou le travail de chacun. Merci pour votre soutien.

Après suppression réussie:

< / p>

Après la suppression, nous vérifions à nouveau les informations sur les nœuds du cluster. Comme indiqué ci-dessous, le nœud esclave 7007 a été supprimé.

< / p>

2. Supprimez le nœud maître

(1) Attribuez les emplacements du nœud maître 7006 à d'autres nœuds maîtres


 Cd / usr / local / redis / redis / src

 ./Redis-trib.rb reshard 192.168.182.132:7006 
 

< / p>

Après avoir sélectionné ces éléments, appuyez sur Entrée pour continuer:

< / p>

Entrez oui, ce qui signifie accepter le plan, puis appuyez sur Entrée pour terminer la suppression de l'emplacement au nœud 6006.

Connectez-vous au cluster pour afficher la situation actuelle du cluster:

< / p>

Il n'y a pas d'emplacement sur le noeud 7006.

(2) Utilisez la commande del-node pour supprimer le nœud maître 7006.


 cd / usr / local / redis / redis / src

 ./redis-trib.rb del-node 192.168.182.132:7006 52d169e7011ccdf10f99c1d83f92409dcc37ab55 
 

Suppression réussie:

< / p>

Enfin, connectez-vous pour vérifier que le cluster est revenu à la structure trois maîtres-trois esclaves, mais il est passé de la distribution régulière au début au nœud maître du port 7000 avec plus de 4096 emplacements.

Résumé

Ce qui précède est le contenu entier de cet article. J'espère que le contenu de cet article aura une certaine référence et valeur d'apprentissage pour l'étude ou le travail de chacun. Merci pour votre soutien.

www.xd1998.com@2001-2030Partage De Technologie