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.
Recommandé : Tutoriel d'introduction à Redis
Grâce à la fonction de réplication maître-esclave de Redis, la séparation en lecture-écriture de la base de données peut être bien réalisée et la capacité de charge de le serveur peut être amélioré. Le serveur principal est principalement responsable des opérations d'écriture, et le serveur esclave est principalement responsable des opérations de lecture
Processus de réplication maître-esclave :
1 : Lorsqu'une base de données esclave est démarrée, une commande de synchronisation sera envoyée à la base de données principale,
2 : Après avoir reçu la commande de synchronisation, la base de données principale commencera à enregistrer l'instantané en arrière-plan (en effectuant une opération rdb) , et met en cache les commandes reçues pendant la période de sauvegarde
3 : Une fois l'instantané terminé, redis enverra le fichier d'instantané et toutes les commandes mises en cache à la base de données esclave.
4 : Après l'avoir reçu de la base de données, le fichier instantané sera chargé et la commande mise en cache reçue sera exécutée.
Remarque : versions antérieures à Redis 2.8 : lorsque la base de données maître-esclave est synchronisée, la base de données esclave réeffectuera l'opération ci-dessus après avoir été déconnectée et reconnectée pour des raisons de réseau, et la reprise de la transmission n'est pas prise en charge. Redis2.8 et versions ultérieures prennent en charge la reprise du point d'arrêt.
Remarque : à partir de Redis 2.8, afin de garantir la sécurité des données, vous pouvez configurer min-slaves-to-write pour permettre à un nœud maître d'effectuer des opérations d'écriture uniquement lorsqu'il possède au moins N nœuds esclaves. Le nœud esclave envoie une requête ping au nœud maître une fois par seconde et le nœud maître enregistre la dernière fois que chaque serveur esclave lui a envoyé un ping. Les utilisateurs peuvent spécifier le délai réseau maximum min-slaves-max-lag et le nombre minimum de serveurs esclaves requis pour effectuer les opérations d'écriture via la configuration
min-slaves-to-write min-slaves-to-write 3 min-slaves-max-lag 10
S'il y a au moins min-esclaves pour écrire des serveurs esclaves, Et la valeur du délai de ces serveurs est inférieure à min-slaves-max-lag secondes, le serveur principal effectuera alors l'opération d'écriture demandée par le client. Tant qu'une condition n'est pas remplie, l'opération d'écriture ne sera pas effectuée et le serveur maître renverra une erreur au client demandant l'opération d'écriture.
2. Déploiement de la réplication maître-esclave :
La structure maître-esclave Redis prend en charge un maître et plusieurs esclaves
Nœud maître : 192.168.1.170.
Nœud esclave : 192.168.1.171
Remarque : La configuration de tous les nœuds esclaves est la même
Méthode 1 : Modifier manuellement le fichier de configuration
Uniquement des modifications supplémentaires sont nécessaires dans le nœud esclave L'attribut slaveof dans le fichier de configuration redis peut être utilisé
slaveof 192.168.1.170 6379
pour démarrer redis sur le nœud maître 170 et afficher les informations d'informations redis (exécuter la commande info)
Démarrez Redis sur le nœud esclave 171
Affichez les informations sur Redis
Méthode 2 : Paramètres dynamiques
Connectez-vous au serveur de nœud esclave via redis-cli et exécutez la commande suivante.
3. Problèmes auxquels il faut prêter attention lors de la réplication maître-esclave :
① Si vous utilisez la réplication maître-esclave, assurez-vous que votre maître a la persistance activée ou assurez-vous qu'il ne redémarre pas automatiquement après un crash. L'esclave est une sauvegarde complète du maître, donc si le maître est redémarré avec un ensemble de données vide, l'esclave sera également effacé.
② Si la base de données maître a un mot de passe défini lors de la configuration de la fonction de réplication Redis, vous devez définir le mot de passe de la base de données maître via le paramètre masterauth dans le fichier de configuration des données esclave, afin que la base de données esclave l'utilisera automatiquement lors de la connexion à la base de données master. La commande auth est authentifiée. Cela équivaut à une connexion sans mot de passe.
Recommandations associées :
Tutoriel vidéo MySQL : https://www.php.cn/course/list/51.html
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!