Redis Cluster

Bugmaker Shen 2022-06-23 18:11:20 阅读数:378

rediscluster

Un.、Concept de Cluster

Les goulets d'étranglement de pointe rencontrés dans le développement des entreprises:

  • redisServices fournisOPSPeut atteindre10(En milliers de dollars des États - Unis)/Secondes,Opérations en coursOPSAtteint20(En milliers de dollars des États - Unis)/Secondes
  • Mémoire autonome jusqu'à256G,Besoins opérationnels actuels capacité de mémoire1T

À ce moment - là, le regroupement peut être utilisé pour résoudre rapidement les problèmes ci - dessus

Architecture des grappes: Un Cluster est un réseau qui relie plusieurs ordinateurs,Et assurer une gestion uniforme,Rendre l'effet de service autonome externe

Le rôle des grappes:

  • Répartir la pression d'accès sur un seul serveur,Réaliser l'équilibrage de la charge
  • Répartir la pression de stockage sur un seul serveur,Réaliser l'extensibilité
  • Réduire la probabilité d'une catastrophe commerciale causée par un seul serveur en panne,Haute disponibilité

Insérer la description de l'image ici

2.、Conception de stockage de données groupées

  • AdoptionhashConception de l'algorithme,CalculékeyEmplacement à enregistrer
  • Couper tout l'espace de stockage en16384Part,Enregistrer une partie par hôte, Un espace de rangement par représentant (Slot),Pas un seul.keyEspace de sauvegarde pour, Cet espace de stockage peut contenir beaucoup de key
  • Oui.keyMettre dans l'espace de stockage correspondant selon les résultats calculés

Insérer la description de l'image ici
Supposons que nous ajoutions une machine maintenant , Comment ces données stockées et cet espace devraient - ils être répartis ?

Insérer la description de l'image ici

Une machine se divise en fentes pour la nouvelle machine , Ce qu'on appelle l'ajout de machines et l'enlèvement de machines , Il suffit de changer la machine stockée dans la fente

Trois、Conception de la communication interne du cluster

  • Les bases de données communiquent entre elles, Enregistrer le numéro de fente dans chaque bibliothèque
  • Un coup.,Retour direct
  • Une erreur,Indiquer l'emplacement exact, Jusqu'à deux coups

Insérer la description de l'image ici
Il y a un client qui cherche key,D'abord.hashL'algorithme calculekey Numéro de fente correspondant , Puis trouvez la machine correspondante sur l'anneau de hachage , Vérifiez s'il y a une fente correspondante sur cette machine ( En raison de l'augmentation possible de la machine 、Supprimer, Les fentes de la machine sont ajoutées à différentes machines )

Si cette machine a keyLa fente correspondante, Recherche directe retour à ;Si ce n'est pas le cas, .Cherchez le numéro de fente de chaque machine et l'enregistrement de la machine , Ensuite, il suffit d'aller à la machine correspondante

Quatre、Construire des grappes

ClusterConfiguration

Set to joincluster, Devenir un nœud

cluster-enabled yes|no

clusterNom du profil,Ce fichier est généré automatiquement, Utilisé uniquement pour la recherche rapide de fichiers et la recherche de contenu de fichiers

cluster-config-file <filename>

Délai de réponse du Service de noeud, Utilisé pour déterminer si le noeud est déconnecté ou commuté à slave

cluster-node-timeout <milliseconds>

masterConnectéslaveQuantité minimale

cluster-migration-barrier <count>

Configuration3 masters—3 slaves

Compilationredis-6379.conf

Insérer la description de l'image ici
Parredis-6379.confJe l'ai.redis-6380.conf、redis-6381.conf、redis-6382.conf、redis-6383.conf、redis-6384.conf,Comme suit:3- Oui.masterEt3- Oui.slaveProfil de démarrage pour

Insérer la description de l'image ici
Démarrer toutmasterEtslave

Insérer la description de l'image ici
Insérer la description de l'image ici
C'est encore un noeud après l'autre , On doit les relier ,InsrcIl y a unredis-trib.rbProgramme exécutable pour( L'exécution de ce fichier nécessite une installation ruby)

Insérer la description de l'image ici

# Ici.nReprésentation1- Oui.masterCorrespondant àn- Oui.slave
# Derrière.ip:portReprésentationmasterEtslaveInformations sur,masterEtslave Le nombre de nCorrespondant à
# Hypothèsesn=1,C'est écrit.6Groupeip:port,Avant3Oui.master,Après3Oui.slave,Réalisation1Seigneur.1De
# Hypothèsesn=2,C'est écrit.9Groupeip:port,Avant3Oui.master,Après6Oui.slave,Réalisation1Seigneur.2De
./redis-trib.rb create --replicas n ip1:port1 ip2:port2 ....

Écris.6Groupeip:port,Directives d'exécution,Générer3Groupe1Seigneur.1De

Insérer la description de l'image ici
Avant de générer plusieurs groupes de structures maître - esclave ,Regardons d'abord.dataTable des matières(Inredis-Port.confConfiguration moyenne) Profil du noeud généré sous nodes-Port.conf
Insérer la description de l'image ici

Nous entronsyes,Générer3Groupe1Seigneur.1De
Insérer la description de l'image ici
cluster Une fois connectés , Le Cluster est configuré ,En ce momentnodes-Port.conf Il y a eu un changement .Voyons voir.master 6379 Profil de noeud correspondant
Insérer la description de l'image ici

Voyons voir.6379master Message rapide du terminal

Insérer la description de l'image ici

Cinq、Pratiques d'utilisation des grappes

1. Utiliser des grappes pour stocker des données

Insérer la description de l'image ici
On est connectés6379PortredisAprès le serveur,J'aimerais6379 Mettre des données sur le serveur ,Peut passerCRC Algorithmes et modules 16384Calculéitheima Ces données devraient être placées dans 5798Slot No., Et cette fente est 6380Sur la machine, On n'a pas le droit de 6379Sur la machine

Nous utilisons-c Paramètres connexion au serveur , Ce paramètre est dédié au fonctionnement du cluster

Insérer la description de l'image ici

Nous sommes toujours connectés 6379Serveur,Quand on met les données,Donner des conseils,Bien que nous soyons6379Mettre les données,Mais à traversCRC Algorithmes et modules 16384Calculéitheima Ces données devraient être placées dans 5798Slot No., Donc redirigé vers 6380Machines

Nous passons-c Parameter login 6382Celui - cislaveLe serveur récupère les données
Insérer la description de l'image ici
Le message nous dit ,Rediriger vers6380Sur la machine5798 C'est sorti de la fente . Tant que nous sommes connectés à l'une des machines du cluster ,Tout est là.6380Sur la machine5798 La fente numéro un sort ,Si on se connecte6380 La machine n'aurait pas d'informations de redirection , Au lieu d'extraire les données directement

2. slaveL'impact de la déconnexion sur le cluster

Le plus grand avantage du cluster n'est pas la capacité de stocker des données sur plusieurs machines , C'est la capacité du cluster à résoudre les catastrophes commerciales causées par les temps d'arrêt

Arrêtons d'abord 6382 slave1

Insérer la description de l'image ici
Voyons voir.slave1Correspondantmaster1,master1Découverteslave1 10sPas de réponse interne, Marquer comme déconnecté
Insérer la description de l'image ici
Et les autres dans le cluster masterEtslaveVous recevrezmaster1Notification,slave1Hors ligne

Insérer la description de l'image ici
À ce moment - là, on laisse slave1Retour en ligne

Insérer la description de l'image ici
Après la mise en ligne et master1 Resynchroniser suffit ,master1 Prévenez les autres masterEtslaveConcernantslave1 Informations en ligne pour , Les autres machines sont nettoyées slave1 Marque de fin de ligne pour

Insérer la description de l'image ici

Résumé: slaveAprès la ligne,Correspondantmaster Il sera marqué comme étant hors ligne , Informez également les autres machines du cluster que slaveHors ligne; Quand il sera en ligne , Synchroniser les données avec , Ensuite, informez les autres machines du cluster que slave Informations en ligne pour

3. masterL'impact de la déconnexion sur le cluster

On arrête master1

Insérer la description de l'image ici
Ci - dessous, il y a un lien avecmaster1Correspondantslave1Fonctionnement

Insérer la description de l'image ici
Nous utilisonscluster nodes Voir les informations du noeud ,J'ai trouvé.4- Oui.master,Parmi eux6379Marqué commefail

Insérer la description de l'image ici

On redémarre maintenant 6379

Insérer la description de l'image ici
6379Demande et6382Synchronisation des données
Insérer la description de l'image ici
Réutilisercluster nodes Voir les informations du noeud ,6379Demaster failModifié comme suit:slave

Insérer la description de l'image ici
Résumé: Quandmaster1Après la ligne,Correspondantslave1Essayer de se connecter, Après le temps mort, je deviens nouveau master, Ensuite, informez les autres machines du cluster ,master1 Hors ligne et devenir masterMessage de,master1 L'état de est marqué comme master fail;6379Quand il sera de nouveau en ligne,Seraslave,Et le leurmasterSynchronisation des données

ClusterCommande de fonctionnement du noeud

Afficher les informations du noeud de Cluster

cluster nodes

Dans un noeud esclave redis, Basculer son noeud Maître

cluster replication <master-id>

Un nouveau noeud a été trouvé , Ajouter un noeud maître

cluster meet ip:port

Ignorer un sans slotNode of

cluster forget

FAILOVER manuel

cluster failover
Copyright:Cet article est[Bugmaker Shen]Établi,Veuillez apporter le lien original pour réimprimer,remercier。 https://fra.fheadline.com/2022/174/202206231659162965.html