Table des matières
Réplication maître-esclave
Principe de base
Commutateur de persistance
Configuration
Mode Sentinel
Démarrer
Migration par défaut
Cluster
键分布模型
配置cluster集群
启动集群
Maison base de données Redis Quelles sont les trois méthodes de clustering Redis

Quelles sont les trois méthodes de clustering Redis

May 26, 2023 pm 02:37 PM
redis

Redis dispose de trois méthodes de clustering : la réplication maître-esclave, le mode sentinelle et le cluster Cluster.

Réplication maître-esclave

Quelles sont les trois méthodes de clustering Redis

Principe de base

Lorsqu'un nouveau serveur esclave est établi, le serveur esclave enverra une commande SYNC au serveur maître Après avoir reçu la commande SYNC, le serveur maître exécutera une commande BGSAVE. Pendant l'exécution, toutes les commandes seront écrites dans le tampon. Lorsque la commande BGSAVE est exécutée, le fichier RDB généré sera envoyé au serveur esclave pour charger les données dans la mémoire. Le serveur maître mettra en mémoire tampon les données au format du protocole de commande Redis. Les commandes de zone sont envoyées au serveur esclave. Après cela, chaque fois que le service maître exécute une commande, elle sera synchronisée avec le serveur esclave. Même si plusieurs serveurs esclaves envoient des commandes SYNC au serveur maître, le serveur maître n'exécutera qu'une seule commande BGSAVE pour traiter la prochaine demande de synchronisation. Un serveur maître peut avoir plusieurs serveurs esclaves, et les serveurs esclaves peuvent également avoir des serveurs esclaves, formant une structure de type graphique. La fonction de réplication ne bloque pas le serveur maître. Même s'il y a une ou plusieurs demandes de synchronisation, le serveur maître peut toujours. traiter les demandes de commandes.

Commutateur de persistance

Lorsque le mode de réplication maître-esclave est configuré, la fonction de persistance du serveur maître doit être activée. Si la fonction de persistance du serveur maître est désactivée, une fois le serveur maître redémarré, tous les esclaves. les données du serveur seront perdues, même s'il est configuré. En mode Sentinel, si le serveur principal démarre automatiquement le processus rapidement, de sorte qu'un nouveau serveur principal n'a pas été élu en mode Sentinel, le démarrage du service principal entraînera également une perte de données sur le sous-serveur.

Configuration

Pour configurer un mode de réplication maître-esclave, utilisez simplement la commande Slaveof, ajoutez-la au fichier de configuration conf ou exécutez la commande dans redis.

SLAVEOF host port
Copier après la connexion

Mode Sentinel

Quelles sont les trois méthodes de clustering Redis

Principe de base

Le système Sentinel de Redis est utilisé pour gérer plusieurs Redis. Il effectue principalement les trois choses suivantes :

Surveillance : Sentinel vérifiera en permanence l'état de fonctionnement des serveurs maître et esclave.

Rappel : lorsqu'un serveur Redis tombe en panne, des notifications peuvent être envoyées via l'API ou d'autres applications

Migration automatique des pannes : lorsqu'un serveur maître ne peut pas fonctionner normalement, Sentinel effectuera une migration automatique des pannes et élira le serveur esclave du serveur maître défaillant . Avec un nouveau serveur maître, les serveurs esclaves restants se connecteront automatiquement et répliqueront les données du nouveau serveur élu.

Le système Sentinel de Redis est un système distribué, et un ou plusieurs Sentinels peuvent être configurés dans le système.

Démarrer

Utilisez redis-sentinel pour démarrer

redis-sentinel sentinel.confy
Copier après la connexion

Vous pouvez également utiliser redis-server pour démarrer

redis-server sentinel.conf --sentinelyy
Copier après la connexion

Les deux méthodes ci-dessus peuvent démarrer sentinel. Vous devez spécifier un fichier de configuration pour démarrer sentinel, sinon il ne le fera pas. start :

Quelles sont les trois méthodes de clustering Redis

Configuration

Un fichier sentinel.conf nécessite au moins une configuration :

sentinel monitor mymaster 127.0.0.1 6379 2
Copier après la connexion

Surveille un hôte avec un alias appelé mymaster, l'adresse est 127.0.0.1 et le port est 6379. Pour juger ce maître Le serveur comme invalide nécessite le consentement d'au moins 2 sentinelles.

Peu importe le nombre de sentinelles configurées pour déterminer la panne d'un serveur principal, plusieurs Sentinelles dans le système doivent être prises en charge pour effectuer la migration des pannes. Lorsque seules quelques sentinelles fonctionnent normalement, la migration des pannes ne peut pas être effectuée.

Migration par défaut

Lorsqu'une Sentinelle découvre que le serveur principal est hors ligne, cela est appelé hors ligne subjective. Uniquement lorsque plusieurs Sentinelles découvrent que le serveur principal est hors ligne et communiquent entre elles via des commandes pour déterminer que le serveur principal est hors ligne. appelé subjectif hors ligne. Ce n'est que lorsque le serveur maître est objectivement hors ligne que le leader Sentinel sera élu. Après l'élection, un nouveau serveur maître sera voté pour élire un serveur esclave à mettre à niveau vers le serveur maître. Et envoyez la commande Slaveof no one au serveur esclave sélectionné pour en faire le serveur maître Grâce à la fonction de publication et d'abonnement, la nouvelle configuration est diffusée aux autres Sentinels pour les mises à jour, et la commande Slaveof est envoyée au serveur maître hors ligne pour la laisser. it Réplique le nouveau serveur maître. Lorsque tous les serveurs esclaves ont commencé à répliquer le nouveau serveur maître, le leader Sentinel met fin à cette migration de panne.

Lorsqu'une instance Redis est reconfigurée, qu'elle soit définie comme serveur maître, serveur esclave ou serveur esclave d'un autre serveur maître, Sentinel enverra une commande CONFIG REWRITE à l'instance reconfigurée pour garantir que ces configurations seront conservées sur le disque dur.

Cluster

Quelles sont les trois méthodes de clustering Redis

之前的主从复制,哨兵模式都难以再现扩容,而Redis cluster集群实现了对Redis的水平扩容,即启动N个Redis节点,每个节点又可以有自己的从服务器,将数据均匀分布的存储在这N个结点上,每个节点存储数据的1/N。Redis cluster集群就是一个可以在多个Redis节点之间进行数据共享的设施;Redis cluster集群采用的是无中心化配置,即节点A无法处理,会将请求转发只节点B进行处理。

键分布模型

Redis集群中的键空间被分割为16384个槽位。Redis采用CRC16算法对16384个槽位进行分配,每个主节点负责其中一部分。为了保证高可用,cluster模式也引入了主从复制模式,一个主节点对应一个或多个从节点,当主节点发生宕机时,可进行故障转移,将子节点升级为主节点。

配置cluster集群

Redis 集群由多个运行在集群模式(cluster mode)下的 Redis 实例组成, 实例的集群模式需要通过配置来开启,以下是一个包含了最少选项的集群配置文件示例:

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
Copier après la connexion

cluster-enabled:打开集群模式
cluster-config-file:节点配置文件名,无须人为修改, 它由 Redis 集群在启动时创建, 并在有需要时自动进行更新
cluster-node-timeout:节点失联时间,当超过此毫秒,集群将自动切换主从节点。

要让集群正常运作至少需要三个主节点,而每个主节点都应该正确配置一个或者多个从节点。

启动集群

使用redis-cli --cluster create命令将节点合并成一个集群

redis-cli --cluster create --cluster-replicas 1  127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
Copier après la connexion

 --cluster-replicas 1 这个指的是从机的数量,表示我们希望为集群中的每个主节点创建一个从节点。

进入集群模式只需要使用redis-cli -c命令

redis-cli -c -p 7000
Copier après la connexion

无中心话节点,所以进入任意一个端口号的主节点即可。

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment construire le mode Cluster Redis Comment construire le mode Cluster Redis Apr 10, 2025 pm 10:15 PM

Le mode Redis Cluster déploie les instances Redis sur plusieurs serveurs grâce à la rupture, à l'amélioration de l'évolutivité et de la disponibilité. Les étapes de construction sont les suivantes: Créez des instances de redis étranges avec différents ports; Créer 3 instances Sentinel, Moniteur Redis Instances et basculement; Configurer les fichiers de configuration Sentinel, ajouter des informations d'instance Redis de surveillance et des paramètres de basculement; Configurer les fichiers de configuration d'instance Redis, activer le mode de cluster et spécifier le chemin du fichier d'informations de cluster; Créer un fichier nœuds.conf, contenant des informations de chaque instance redis; Démarrez le cluster, exécutez la commande CREATE pour créer un cluster et spécifiez le nombre de répliques; Connectez-vous au cluster pour exécuter la commande d'informations de cluster pour vérifier l'état du cluster; faire

Comment utiliser la commande redis Comment utiliser la commande redis Apr 10, 2025 pm 08:45 PM

L'utilisation de la directive Redis nécessite les étapes suivantes: Ouvrez le client Redis. Entrez la commande (Verbe Key Value). Fournit les paramètres requis (varie de l'instruction à l'instruction). Appuyez sur Entrée pour exécuter la commande. Redis renvoie une réponse indiquant le résultat de l'opération (généralement OK ou -err).

Comment lire le code source de Redis Comment lire le code source de Redis Apr 10, 2025 pm 08:27 PM

La meilleure façon de comprendre le code source redis est d'aller étape par étape: familiarisez-vous avec les bases de Redis. Sélectionnez un module ou une fonction spécifique comme point de départ. Commencez par le point d'entrée du module ou de la fonction et affichez le code ligne par ligne. Affichez le code via la chaîne d'appel de fonction. Familiez les structures de données sous-jacentes utilisées par Redis. Identifiez l'algorithme utilisé par Redis.

Comment effacer les données redis Comment effacer les données redis Apr 10, 2025 pm 10:06 PM

Comment effacer les données Redis: utilisez la commande flushall pour effacer toutes les valeurs de clé. Utilisez la commande flushdb pour effacer la valeur clé de la base de données actuellement sélectionnée. Utilisez SELECT pour commuter les bases de données, puis utilisez FlushDB pour effacer plusieurs bases de données. Utilisez la commande del pour supprimer une clé spécifique. Utilisez l'outil Redis-CLI pour effacer les données.

Comment utiliser un seul fileté redis Comment utiliser un seul fileté redis Apr 10, 2025 pm 07:12 PM

Redis utilise une architecture filetée unique pour fournir des performances élevées, une simplicité et une cohérence. Il utilise le multiplexage d'E / S, les boucles d'événements, les E / S non bloquantes et la mémoire partagée pour améliorer la concurrence, mais avec des limites de limitations de concurrence, un point d'échec unique et inadapté aux charges de travail à forte intensité d'écriture.

Comment afficher toutes les clés dans Redis Comment afficher toutes les clés dans Redis Apr 10, 2025 pm 07:15 PM

Pour afficher toutes les touches dans Redis, il existe trois façons: utilisez la commande Keys pour retourner toutes les clés qui correspondent au modèle spécifié; Utilisez la commande SCAN pour itérer les touches et renvoyez un ensemble de clés; Utilisez la commande info pour obtenir le nombre total de clés.

Comment lire la file d'attente redis Comment lire la file d'attente redis Apr 10, 2025 pm 10:12 PM

Pour lire une file d'attente à partir de Redis, vous devez obtenir le nom de la file d'attente, lire les éléments à l'aide de la commande LPOP et traiter la file d'attente vide. Les étapes spécifiques sont les suivantes: Obtenez le nom de la file d'attente: Nommez-le avec le préfixe de "Fitre:" tel que "Fitre: My-Quyue". Utilisez la commande LPOP: éjectez l'élément de la tête de la file d'attente et renvoyez sa valeur, telle que la file d'attente LPOP: My-Queue. Traitement des files d'attente vides: si la file d'attente est vide, LPOP renvoie NIL et vous pouvez vérifier si la file d'attente existe avant de lire l'élément.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

See all articles