Maison  >  Article  >  développement back-end  >  Quels sont les trois modes du cluster Redis ?

Quels sont les trois modes du cluster Redis ?

巴扎黑
巴扎黑original
2017-09-16 10:01:2717056parcourir

Quels sont les trois modes du cluster Redis ?

Trois modes du cluster Redis

1.

Grâce à la fonction de persistance, Redis garantit qu'aucune donnée ne sera perdue (ou une petite quantité de perte) même au redémarrage du serveur, car la persistance enregistrera les données en mémoire sur le disque dur , et le redémarrage chargera les données du disque dur.

Cependant, étant donné que les données sont stockées sur un serveur, si le serveur rencontre des problèmes tels qu'une panne de disque dur, une perte de données se produira également. Afin d'éviter les points de défaillance uniques, une pratique courante consiste à répliquer plusieurs copies de la base de données et à les déployer sur différents serveurs, de sorte que même en cas de panne d'un serveur, les autres serveurs puissent continuer à fournir des services. À cette fin, Redis fournit une fonction de réplication, qui peut synchroniser automatiquement les données mises à jour avec d'autres bases de données lorsque les données d'une base de données sont mises à jour.

Dans le concept de réplication, les bases de données sont divisées en deux catégories, l'une est la base de données maître (master) et l'autre est la base de données esclave (esclave). La base de données maître peut effectuer des opérations de lecture et d'écriture lorsque l'opération d'écriture entraîne des modifications des données, celles-ci seront automatiquement synchronisées avec la base de données esclave. La base de données esclave est généralement en lecture seule et accepte les données synchronisées depuis la base de données maître. Une base de données maître peut avoir plusieurs bases de données esclaves, et une base de données esclave ne peut avoir qu'une seule base de données maître.

Configuration de la base de données maître-esclave

La base de données maître n'a pas besoin d'être configurée. Vous pouvez charger les informations de la base de données esclave à partir du fichier de configuration Redis, ou vous pouvez le faire. utilisez redis- au démarrage. server --port 6380 --slaveof 127.0.0.1 6379

La base de données esclave est généralement en lecture seule et peut être modifiée en écriture, mais les données écrites peuvent facilement être synchronisées par le maître. , il peut donc toujours être en lecture seule.

Vous pouvez également utiliser la commande slaveof ip port au moment de l'exécution pour arrêter le maître d'origine et passer au maître, il suffit de définir slaveof personne ne se transformera en maître

Principe de réplication

Lors du démarrage à partir de la base de données, une commande de synchronisation sera envoyée à la base de données principale. Après avoir reçu la synchronisation, la base de données principale commence à enregistrer le snapshot rdb en arrière-plan. Les commandes reçues lors du snapshot. sont mis en cache Une fois l'instantané terminé, la base de données principale enverra ensemble l'instantané et les commandes mises en cache à l'esclave. L'initialisation de la copie se termine.

Après cela, chaque fois que le maître reçoit une commande, elle sera envoyée à l'esclave de manière synchrone.

Lorsqu'il y a une déconnexion et une reconnexion, les versions après 2.8 transmettront les commandes pendant la période de déconnexion à la re-base de données. Réplication incrémentielle

La réplication maître-esclave est une réplication optimiste Lorsque le client envoie une exécution d'écriture au maître, le maître renvoie immédiatement les résultats au client après l'exécution et envoie la commande à l'esclave de manière asynchrone, n'affectant ainsi pas. performance. Vous pouvez également définir le nombre minimum de maîtres esclaves à synchroniser avant l'écriture.

Réplication sans disque dur : si l'efficacité du disque dur est faible, cela affectera les performances de réplication. Après la version 2.8, vous pouvez configurer la réplication sans disque, repl-diskless-sync yes

2. SentinelLorsque la base de données principale rencontre une interruption de service anormale, les développeurs peuvent sélectionner manuellement une base de données esclave à mettre à niveau vers la base de données principale afin que le système puisse continuer à fournir des services. Cependant, l’ensemble du processus est relativement lourd et nécessite une intervention manuelle, ce qui rend difficile son automatisation. À cette fin, Redis 2.8 fournit l'outil sentinelle pour mettre en œuvre des fonctions automatisées de surveillance du système et de récupération des pannes.

Le rôle de la sentinelle est de surveiller si les bases de données redis maître et esclave fonctionnent normalement. Si le maître tombe en panne, il passera automatiquement de la base de données esclave à la base de données maître.

Exemple :

1 maître 2 esclaves 1 sentinelle

redis-server --port 6379

redis-server --port 6380 - -slaveof 192.168.0.167 6379

redis-server --port 6381 --slaveof 192.168.0.167 6379

Fichier de configuration Sentinel sentinel.conf

sentinel moniteur mymaster 192.168 0.167. 6379 1

Le 1 ici représente 1 sentinelle

Remarque :


Lors de la configuration de la sentinelle pour surveiller un système, il vous suffit de configurer sa surveillance base de données maître. Oui, Sentinel découvrira automatiquement toutes les bases de données esclaves qui répliquent la base de données maître

De cette façon, Sentinel peut surveiller le maître 6379 et les esclaves 6380 et 6381. Une fois que 6379 meurt, Sentinel choisira l'un des deux. en tant que maître. Choisissez en fonction de la priorité. S'ils sont identiques, choisissez celui avec le plus petit ID. Lorsque 6379 réapparaîtra, il existera en tant qu'esclave.

3. Cluster (cluster-enable)Pour utiliser un cluster, il vous suffit d'activer la configuration d'activation du cluster de chacun nœud de base de données. Au moins trois bases de données maîtres sont requises dans chaque cluster pour fonctionner correctement.

Même si Sentinel est utilisé, chaque instance Redis est entièrement stockée et le contenu stocké dans chaque Redis est des données complètes, ce qui gaspille de la mémoire et a un effet baril. Afin de maximiser l'utilisation de la mémoire, des clusters peuvent être utilisés, qui constituent un stockage distribué. Autrement dit, chaque Redis stocke un contenu différent.

Le cluster nécessite au moins 3 maîtres et 3 esclaves, et chaque instance utilise un fichier de configuration différent. Il n'est pas nécessaire de configurer le maître et les esclaves, le cluster choisira lui-même.

Modifier le fichier de configuration de chaque instance :

cluster-enabled yes --Activer le cluster

cluster-config-file nodes-6382.conf -- Nom du fichier de configuration du cluster,

Chaque instance doit être configurée différemment, redis en créera automatiquement une nouvelle en fonction du nom du fichier

Fonctionnement du cluster

Exécution Src du répertoire d'installation redis./redis-trib.rb create --replicas 1

127.0.0.1 :6380 127.0.0.1:6381 127.0.0.1:6382

127.0.0.1:6383 127.0.0.1:6384 127.0.0.1:6385

L'élection principale ici est similaire à celle du gardien de zoo

Pour plus de connaissances connexes, veuillez visiter le Site Web PHP chinois ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn