Maison > Article > base de données > Explication graphique détaillée de trois solutions de déploiement Redis
standaloan (mode autonome)
standaloan est le mode autonome de Redis, et tout les services sont connectés à un seul service Redis, ce mode n'est pas adapté à la production. S'il y a un temps d'arrêt et une explosion de mémoire, cela peut entraîner une défaillance du cache de tous les services connectés à Redis et provoquer une avalanche. (Recommandé : tutoriel vidéo redis)
ssentinel (mode sentinelle)
redis-Sentinel (mode sentinelle) est la haute disponibilité officiellement recommandée par Solution Redis (HA), lors de l'utilisation de Redis comme solution à haute disponibilité pour maître-esclave, si le maître tombe en panne, Redis lui-même (y compris bon nombre de ses clients) n'implémente pas la commutation automatique maître-esclave, et Redis-sentinel lui-même le fait Il ne s'agit pas d'un processus exécuté indépendamment, il peut surveiller plusieurs clusters maître-esclave et basculer une fois que le maître est en panne
sentinel implémente les fonctions suivantes
(1) surveillance : surveiller si Redis fonctionne normalement
(2) notification : notifier l'application des messages d'erreur
(3) basculement : lorsqu'un maître meurt, choisissez un autre esclave vers lequel effectuer la mise à niveau le maître, mettez à jour la relation maître-esclave.
(4) fournisseur de configuration : le client obtient l'adresse redis via sentinel et met à jour l'adresse lors du basculement
2. Découverte automatique des sentinelles et des esclaves (redis2.8 et supérieur)
. configuration Seule l'adresse maître est configurée dans le fichier, et l'adresse esclave et l'adresse sentinelle peuvent être automatiquement découvertes.
(1) sentinelles - Les sentinelles échangent des informations via redis pub/sub.
(2) esclaves - obtenez-les en demandant au maître.
3. sdown, odown, failover
La détection des défauts se fait généralement via le mécanisme ping-pong. Sentinel introduit les mécanismes sdown (hors ligne subjectif) et odown (hors ligne objectif). l'échelle du cluster est grande, la détection est plus objective
(1) sdwon——ping-pong échoue dans is-master-down-after-milliseconds (configurable). L'esclave de sdown ne peut pas être mis à niveau vers le maître.
(2) odown - Les sentinelles dépassant un certain nombre (configurable) considèrent sdown, et odown ne cible que le maître.
(3) basculement - la plupart des sentinelles pensent qu'elles sont déprimées.
redis-cluster (mode cluster)
le mode cluster redis peut également réaliser un déploiement haute disponibilité de redis en mode cluster Redis Sentinel, avec le volume d'activité et. data À mesure que les performances augmentent, les performances atteignent le goulot d'étranglement à nœud unique de redis. L'expansion verticale est limitée par la machine. L'expansion horizontale implique un impact sur l'application et un risque de perte de données lors de la migration des données. En réponse à ces problèmes
Redis3.0 a lancé la solution de cluster distribué en cluster. Lorsque vous rencontrez des goulots d'étranglement de mémoire, de concurrence et de trafic à nœud unique, la solution de cluster est utilisée pour réaliser l'équilibrage de charge. le problème de partitionnement, c'est-à-dire que l'ensemble des données est divisé en plusieurs sous-ensembles selon des règles et stocké en plusieurs points différents. Chaque nœud est responsable de sa propre partie de l'ensemble des données.
Redis Cluster adopte le partitionnement des emplacements virtuels dans les règles de partitionnement de hachage. Le partitionnement des emplacements virtuels utilise intelligemment l'espace de hachage et utilise une fonction de hachage avec une bonne dispersion pour mapper toutes les données sur un ensemble d'entiers dans une plage fixe. Les entiers sont définis comme des emplacements. La plage des emplacements du cluster Redis est comprise entre 0 et 16 383. Les emplacements constituent l'unité de base de la gestion et de la migration des données au sein d'un cluster.
L'objectif principal de l'utilisation d'une large gamme d'emplacements est de faciliter le fractionnement des données et l'expansion du cluster. Chaque nœud est responsable d'un certain nombre d'emplacements. Redis Cluster utilise le partitionnement des emplacements virtuels et toutes les clés sont mappées sur 0 ~ 16383 selon la fonction de hachage. La formule de calcul est : slot = CRC16(key)&16383. Chaque nœud réel est responsable de la maintenance d'une partie des emplacements et des données de valeur clé mappées par les emplacements. La figure ci-dessous montre un cluster composé de cinq nœuds. Chaque nœud est responsable d'une moyenne d'environ 3 276 emplacements et du processus de mappage aux emplacements correspondants des nœuds correspondants via des formules de calcul.
schéma d'architecture redis-cluster
Pour plus de connaissances sur Redis, veuillez faire attention à la colonne tutoriel d'introduction à Redis.
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!