Maison  >  Article  >  base de données  >  Comment implémenter un cluster Redis hautement disponible

Comment implémenter un cluster Redis hautement disponible

(*-*)浩
(*-*)浩original
2019-11-29 09:11:212639parcourir

Comment implémenter un cluster Redis hautement disponible

Quelques méthodes pour implémenter le mécanisme de haute disponibilité Redis :

Garantir le mécanisme de haute disponibilité Redis nécessite la réplication maître-esclave Redis et la persistance Redis Mécanisme, mécanisme sentinelle, support keepalived, etc.

Les fonctions de réplication maître-esclave : sauvegarde des données, séparation lecture-écriture, clustering distribué, haute disponibilité, mécanisme de tolérance aux pannes pendant les temps d'arrêt, etc. (Apprentissage recommandé : Tutoriel vidéo Redis)

Principe de la réplication maître-esclave Redis

Tout d'abord, la réplication maître-esclave doit être divisé en deux rôles : maître (maître) et esclave (esclave), remarque : redis ne prend en charge qu'un seul maître, contrairement à la réplication maître-esclave Mysql et Nginx, qui peuvent avoir plusieurs maîtres et plusieurs esclaves.

1. La fonction de réplication de redis prend en charge la synchronisation des données entre plusieurs bases de données. L'une est la base de données maître (maître) 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. Lorsqu'une opération d'écriture se produit, les données sont automatiquement synchronisées avec la base de données esclave. lecture seule et réception Pour les données synchronisées à partir de la base de données maître, une base de données maître peut avoir plusieurs bases de données esclaves, tandis qu'une base de données esclave ne peut avoir qu'une seule base de données maître.

2. La fonction de réplication de redis peut séparer efficacement la lecture et l'écriture de la base de données et améliorer la capacité de charge du serveur. La base de données maître effectue principalement les opérations d'écriture, tandis que la base de données esclave est responsable des opérations de lecture.

Le processus de synchronisation complète de la réplication maître-esclave : voir la figure ci-dessous

Comment implémenter un cluster Redis hautement disponible

Réplication maître-esclave Redis peut être basé sur le fait qu'il soit complet. Elle est divisée en synchronisation complète et synchronisation incrémentielle

La réplication complète Redis se produit généralement pendant la phase d'initialisation de l'esclave. À ce stade, l'esclave doit copier toutes les données sur. le Maître.

Processus de synchronisation complète :

1 : Lorsqu'une base de données esclave démarre, une commande de synchronisation sera envoyée à la base de données maître,

2 : La la base de données principale reçoit Après avoir atteint la commande de synchronisation, elle commencera à enregistrer l'instantané en arrière-plan (effectuer une opération RDB) et utilisera la zone de cache pour enregistrer toutes les opérations d'écriture ultérieures

3 : Lorsque l'instantané du serveur maître est enregistré, redis enverra le fichier instantané à la base de données esclave.

4 : Après avoir reçu le fichier d'instantané de la base de données, toutes les anciennes données seront supprimées et l'instantané reçu sera chargé.

5 : Une fois l'instantané du serveur maître envoyé, il commence à envoyer la commande d'écriture dans le tampon au serveur esclave.

6 : Le serveur esclave termine le chargement de l'instantané, commence à recevoir des demandes de commandes et exécute les commandes d'écriture à partir du tampon du serveur maître.

Processus de synchronisation incrémentielle :

La réplication incrémentielle Redis fait référence au processus de synchronisation des opérations d'écriture qui se produisent sur le serveur maître avec le serveur esclave lorsque l'esclave commence à fonctionner normalement après initialisation.

Le processus de réplication incrémentielle consiste principalement à ce que chaque fois que le serveur maître exécute une commande d'écriture, il envoie la même commande d'écriture au serveur esclave, et le serveur esclave reçoit et exécute la commande d'écriture reçue.

Sélection de la synchronisation complète et incrémentielle de la réplication maître-esclave Redis :

Lorsque le serveur maître-esclave vient de se connecter, la synchronisation complète sera effectuée en premier après la synchronisation complète ; la synchronisation est terminée, puis effectuez une synchronisation incrémentielle. Bien entendu, si nécessaire, l'esclave peut à tout moment lancer une synchronisation complète. La stratégie Redis est que, quoi qu'il arrive, une synchronisation incrémentielle sera tentée en premier, et en cas d'échec, la machine esclave devra effectuer une synchronisation complète.

Comment configurer la réplication maître-esclave Redis ?

修改从服务器redis/conf中的redis.conf文件
 
修改IP地址和端口号为主服务器的IP和端口
slaveof 10.211.55.9 6379 
 
masterauth 123456--- 如果主redis服务器配置了密码,则需要配置

Il vous suffit de configurer redis.conf du serveur esclave, et aucune configuration n'est requise sur le serveur maître. Vous pouvez vérifier si l'opération a réussi en 1. Connectez-vous d'abord au client redis-cli du serveur principal et saisissez les informations.

Si le rôle indique que master et slave0 peuvent afficher l'adresse IP du serveur esclave normalement, cela signifie que la configuration du service maître-esclave est réussie, que la configuration de la réplication maître-esclave est réussie et que la séparation lecture-écriture est réussie. est également réalisé en même temps. Vous n'y croyez pas ? Essayez-le. Votre serveur esclave peut-il toujours écrire des opérations ?

La réponse est : Non. Il n'y a que des opérations de lecture à partir du serveur !

Pour plus d'articles techniques liés à Redis, veuillez visiter la colonne Tutoriel de démarrage de Redis pour apprendre !

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