Redis autonome, maître-esclave, sentinelle, cluster quatre modes

insérez la description de l'image ici

Mode autonome Redis

insérez la description de l'image ici

Le mode autonome Redis fait référence au mode dans lequel la base de données Redis s'exécute en tant que processus unique et indépendant sur un serveur unique. Dans ce mode, Redis n'implique pas de partage de données ou de configuration de cluster, et toutes les données et opérations sont effectuées dans une seule instance. Voici une introduction détaillée au mode autonome de Redis :

  1. Instance unique : en mode autonome Redis, une seule instance de Redis s'exécute sur un serveur. Cette instance est responsable du traitement de toutes les demandes de stockage et de manipulation de données.

  2. Base de données mémoire : le mode autonome Redis est toujours une base de données basée sur la mémoire, toutes les données sont stockées en mémoire, de sorte que l'opération de lecture est très rapide. Cela rend le mode autonome Redis adapté aux scénarios d'application qui nécessitent une lecture à grande vitesse, tels que les systèmes de mise en cache.

  3. Modèle à thread unique : le mode autonome Redis utilise un modèle à thread unique pour traiter les demandes des clients. En effet, la plupart des opérations Redis ne sont pas bloquantes et le goulot d'étranglement des performances de Redis réside généralement dans le CPU plutôt que dans la simultanéité des threads. Ce modèle à thread unique simplifie les structures et les opérations de données internes, améliorant ainsi les performances et la stabilité.

  4. Persistance : le mode autonome Redis prend en charge la persistance des données, c'est-à-dire l'enregistrement des données sur le disque pour la récupération après le redémarrage. Il existe deux principales méthodes de persistance : RDB (Redis Database Dump) et AOF (Append-Only File). RDB enregistre l'instantané de la base de données sur le disque et AOF ajoute l'opération d'écriture au fichier pour la récupération des données.

  5. Type de données : le mode autonome Redis prend en charge une variété de types de données, tels que les chaînes, les tables de hachage, les listes, les ensembles, les ensembles ordonnés, etc. Ces types de données permettent à Redis d'être utilisé à diverses fins telles que la mise en cache, les compteurs, les classements, l'analyse en temps réel, etc.

  6. Publier-s'abonner : le mode autonome Redis prend en charge le mode publier-s'abonner, dans lequel un client peut publier des messages, tandis que d'autres clients peuvent s'abonner aux canaux de messagerie intéressés. Ceci est très utile lors de la construction de systèmes de messagerie en temps réel.

  7. Transaction : le mode autonome de Redis prend en charge les transactions, ce qui permet d'exécuter plusieurs commandes en une seule opération atomique, soit toutes soumises, soit toutes annulées.

  8. Scénarios d'application : le mode autonome Redis convient aux applications à petite échelle ou aux scénarios qui ne nécessitent pas une disponibilité des données particulièrement élevée. Il peut être utilisé comme cache, compteur, analyse en temps réel, classement, file d'attente de tâches, etc.

Bien que le mode autonome de Redis présente des avantages en termes de simplicité et de facilité d'utilisation, des goulots d'étranglement en termes de performances et de disponibilité peuvent survenir face à une simultanéité élevée et à des données à grande échelle.

Mode maître-esclave Redis

insérez la description de l'image ici

Le mode maître-esclave Redis est une architecture distribuée utilisée pour améliorer la disponibilité, les performances et les capacités de sauvegarde des données de la base de données Redis. En mode maître-esclave, il y a un nœud maître (maître) et un ou plusieurs nœuds esclaves (esclaves). Le nœud maître est responsable du traitement des opérations d'écriture et de certaines opérations de lecture, tandis que les nœuds esclaves sont responsables de la réplication des données du nœud maître et du traitement de certaines opérations de lecture.

Voici les principales caractéristiques et principes de fonctionnement du mode maître-esclave Redis :

  1. Réplication des données : le nœud maître est responsable des opérations d'écriture et de certaines opérations de lecture, tandis que le nœud esclave réalise la sauvegarde des données et le partage de lecture en répliquant les données du nœud maître. Le nœud esclave obtiendra périodiquement des instantanés de données (RDB) ou des journaux incrémentiels (AOF) du nœud maître pour maintenir la cohérence des données.

  2. Séparation lecture-écriture : le nœud maître est responsable des opérations d'écriture, tandis que les nœuds esclaves sont responsables des opérations de lecture, partageant ainsi la charge du nœud maître. Cela améliore les performances globales et la capacité de charge du système.

  3. Sauvegarde des données : en copiant les données sur les nœuds esclaves, le mode maître-esclave réalise une sauvegarde redondante des données. Lorsque le nœud maître tombe en panne, l'un des nœuds esclaves peut être mis à niveau vers un nouveau nœud maître, garantissant ainsi la disponibilité du système.

  4. Récupération en cas de panne : lorsque le nœud maître tombe en panne, vous pouvez obtenir une récupération rapide en cas de panne en mettant à niveau un nœud esclave pour qu'il devienne le nouveau nœud maître. Ce processus est appelé basculement (basculement).

  5. Partage des données : en utilisant plusieurs nœuds esclaves, le mode maître-esclave peut également réaliser le partage des données, améliorant ainsi l'évolutivité et les performances du système.

  6. Paramètres de configuration : en mode maître-esclave, le nœud esclave doit configurer l'adresse et le port du nœud maître pour la réplication des données. Le nœud maître ne détecte pas automatiquement la présence de nœuds esclaves.

  7. Retard des données : étant donné que le nœud esclave doit copier les données du nœud maître, il peut y avoir un léger retard dans les données du nœud esclave par rapport au nœud maître.

Le mode maître-esclave convient aux scénarios qui doivent améliorer la disponibilité et les performances de la base de données Redis, en particulier dans les applications qui lisent plus et écrivent moins. Cependant, le modèle maître-esclave ne fournit pas une garantie absolue de haute disponibilité, car lorsque le nœud maître tombe en panne, le basculement peut prendre un certain temps. Pour une haute disponibilité de niveau supérieur et des exigences distribuées, vous pouvez envisager d'utiliser le cluster Redis, le mode sentinelle ou d'autres solutions de base de données distribuées, qui sont les modes dont nous parlerons ci-dessous !

Mode sentinelle Redis

insérez la description de l'image ici

Redis Sentinel est une solution de surveillance et de gestion des clusters Redis, conçue pour fournir une haute disponibilité et un basculement automatique. En mode sentinelle Redis, un groupe de processus sentinelles Redis est responsable de la surveillance de l'état des nœuds maîtres et esclaves Redis, et du basculement automatique lorsque le nœud maître tombe en panne.

Voici les principales fonctionnalités et principes de fonctionnement du mode sentinelle Redis :

  1. Surveiller les nœuds maître et esclave : Le processus sentinelle Redis surveille régulièrement l'état des nœuds maître et esclave. Ils déterminent la santé du nœud en envoyant des pulsations et en vérifiant la réponse du serveur Redis.

  2. Basculement automatique : Sentinel détecte automatiquement la défaillance d'un nœud maître Redis et coordonne la promotion d'un nœud esclave disponible en tant que nouveau nœud maître pour un basculement rapide. Cela réduit les temps d'arrêt du système.

  3. Gestion de la configuration : la sentinelle Redis peut surveiller plusieurs nœuds maître-esclave Redis. Lorsque l'état du nœud change, la sentinelle peut automatiquement mettre à jour la configuration pour s'assurer que le client se connecte au bon nœud.

  4. Fournir une découverte de service : les clients peuvent se connecter à un ou plusieurs processus sentinelles Redis sans se connecter directement à des nœuds Redis spécifiques. Sentry peut fournir aux clients des informations sur les nœuds maître et esclave actuellement disponibles.

  5. Mode multi-sentinelle : Plusieurs Sentinelles Redis peuvent être configurées pour la redondance et la haute disponibilité. Ces Sentinelles coopèrent entre elles pour gérer conjointement le cluster Redis.

  6. Décision de vote : pendant le processus de basculement, si plusieurs sentinelles pensent qu'un nœud esclave doit être promu au nouveau nœud maître, elles voteront et parviendront à un consensus pour prendre une décision.

Le mode sentinelle Redis convient aux déploiements Redis nécessitant une haute disponibilité, notamment en termes de séparation lecture-écriture et de basculement. Il peut surveiller et gérer efficacement les clusters Redis, réduisant ainsi les temps d'arrêt du système et améliorant la stabilité des applications.

Cependant, il convient de noter que le mode sentinelle Redis ne fournit pas une haute disponibilité absolue, car il peut y avoir de brèves interruptions de service pendant le basculement. Pour des exigences de haute disponibilité et de performances de niveau supérieur, envisagez d'utiliser le cluster Redis qui sera traité ci-dessous.

Mode cluster Redis

insérez la description de l'image ici

Le mode cluster Redis est une architecture distribuée permettant de combiner plusieurs nœuds Redis dans un cluster logique afin de fournir des capacités de haute disponibilité, d'évolutivité et de distribution de données. Dans un cluster Redis, les données seront distribuées sur plusieurs nœuds, chaque nœud est responsable de la gestion d'une partie des données et peut également effectuer automatiquement le basculement et la migration des données.

Voici les fonctionnalités clés et les principes de fonctionnement du mode cluster Redis :

  1. Partage des données : le cluster Redis divisera les données en plusieurs fragments de données, et chaque fragment de données sera stocké sur différents nœuds. Cela peut distribuer efficacement les données à plusieurs nœuds, améliorant ainsi l'évolutivité et les performances du système.

  2. Haute disponibilité : le cluster Redis est conçu avec une haute disponibilité, chaque fragment de données a plusieurs copies, garantissant que même si un nœud tombe en panne, les données sont toujours disponibles. Le cluster prend en charge le basculement automatique, qui peut mettre à niveau un nœud esclave vers un nouveau nœud maître, garantissant ainsi la disponibilité du système.

  3. Détection de panne distribuée : le cluster Redis utilise plusieurs nœuds pour la détection de panne. Lorsqu'un nœud tombe en panne, d'autres nœuds peuvent le détecter et coordonner le basculement.

  4. Communication inter-nœuds : les nœuds du cluster Redis communiquent via un protocole binaire pour réaliser la synchronisation des données, la détection des pannes et la maintenance de l'état des nœuds.

  5. Migration automatique des données : lors de l'ajout ou de la suppression de nœuds, le cluster Redis peut effectuer automatiquement la migration des données pour s'assurer que les données sont uniformément réparties entre les différents nœuds.

  6. Cohérence des données : le cluster Redis distribue les données en utilisant des emplacements de hachage pour garantir que les données avec la même clé seront stockées sur le même nœud, garantissant ainsi la cohérence des données.

  7. Séparation lecture-écriture : le cluster Redis prend en charge la séparation lecture-écriture côté client, c'est-à-dire que les opérations de lecture peuvent lire les données de n'importe quel nœud parmi plusieurs nœuds, tandis que les opérations d'écriture seront envoyées au nœud maître.

  8. Extension de nœud : lorsqu'il est nécessaire d'étendre la capacité du cluster Redis, cela peut être réalisé en ajoutant de nouveaux nœuds. Le cluster Redis migrera automatiquement une partie des données vers de nouveaux nœuds pour réaliser une extension de capacité.

Le mode cluster Redis convient aux scénarios qui nécessitent une haute disponibilité, des performances élevées et des capacités distribuées, en particulier lorsqu'ils sont confrontés à des données à grande échelle et à des demandes simultanées élevées. Il peut gérer et distribuer efficacement les données, offrant un niveau de disponibilité et d'évolutivité plus élevé, mais nécessite également des travaux de configuration et de gestion supplémentaires, en particulier la configuration du cluster, qui est un lieu laborieux, comment allouer les ressources, voire l'expansion et la contraction, impliquant une architecture élastique. , est une technologie relativement avancée. Bien sûr, il existe aussi une méthode de déploiement de docker, vous pouvez l'essayer, c'est très amusant et intéressant ! ! !

La différence entre les quatre modes

Nous avons respectivement introduit le mode autonome, le mode maître-esclave, le mode sentinelle et le mode cluster de Redis. Ci-dessous, je comparerai brièvement ces 4 modes pour mieux comprendre les différences entre eux.

  1. Mode autonome :

    • Présentation : le mode autonome Redis est le mode de déploiement le plus simple, avec une seule instance Redis exécutée sur un seul serveur.
    • Avantages : Simple et facile à utiliser, adapté aux applications à petite échelle ou aux environnements de développement. Peut être utilisé comme cache, stockage temporaire, etc.
    • Inconvénients : il n'a pas une haute disponibilité et si un seul point de défaillance se produit, les données ne seront pas disponibles. Ne convient pas aux applications à forte simultanéité et à grande échelle.
  2. Mode maître-esclave :

    • Présentation : Le mode maître-esclave Redis se compose de nœuds maîtres et de nœuds esclaves. Les nœuds esclaves répliquent les données du nœud maître pour améliorer la disponibilité et la séparation lecture-écriture.
    • Avantages : Fournit un certain degré de haute disponibilité et de séparation lecture-écriture. Il peut faire face à la défaillance du nœud maître et réaliser un basculement rapide.
    • Inconvénient : lorsque le nœud maître tombe en panne, il est nécessaire de mettre à niveau manuellement le nœud esclave vers le nouveau nœud maître, et il y a un certain temps d'arrêt. Ne convient pas aux scénarios d'écriture et de distribution de données à grande échelle.
  3. Mode sentinelle :

    • Présentation : le mode sentinelle Redis surveille l'état des nœuds maître et esclave via un groupe de processus sentinelles et effectue automatiquement le basculement.
    • Avantages : Fournit une haute disponibilité automatisée avec détection automatique de la défaillance du nœud maître et basculement rapide. Convient aux scénarios nécessitant une haute disponibilité.
    • Inconvénient : le basculement peut entraîner une brève interruption de service. La configuration et la gestion sont relativement complexes.
  4. Mode cluster :

    • Présentation : le mode cluster Redis permet le partage des données et la haute disponibilité en mettant en cluster plusieurs nœuds.
    • Avantages : Fournit des capacités de haute disponibilité, d'évolutivité et de distribution de données. Partage et basculement automatiques des données, adaptés aux scénarios à grande échelle et à forte simultanéité.
    • Inconvénients : la configuration et la gestion sont relativement compliquées et plusieurs nœuds doivent être maintenus.

En général, différents modes de déploiement Redis conviennent à différents besoins et scénarios. Si vous avez besoin d'un stockage de données simple ou d'un environnement de développement et de test, vous pouvez envisager le mode autonome. Si vous avez besoin d'une certaine haute disponibilité et d'une séparation lecture-écriture, vous pouvez choisir le mode maître-esclave. Le mode sentinelle peut être utilisé si un niveau supérieur de haute disponibilité automatisée et de basculement est requis. Et si vous avez besoin de capacités de haute disponibilité, d'évolutivité et de distribution de données, vous pouvez choisir le mode cluster. Lorsque vous choisissez un mode, faites des compromis et prenez des décisions en fonction des besoins de votre application, des exigences de disponibilité et des exigences de performances.

Et dans l'article précédent, parce qu'il s'agit du déploiement d'un cluster docker, j'ai publié un article détaillé sur le déploiement du cluster Redis, vous pouvez le lire si ça vous intéresse !
Docker déploie des nœuds de cluster Redis.
Selon ma courte expérience de projet, je n'ai pas encore rencontré de système à grande échelle, donc je n'ai pas utilisé le mode cluster. C'est une version autonome, qui implémente l'authentification par jeton ou les données personnelles de l'utilisateur stockage. Il n'y a pas d'exigence aussi avancée. , Cependant, cela ne signifie pas que vous n'en aurez pas besoin à l'avenir. Tout le monde espère en apprendre davantage et pratiquer davantage. Les opportunités sont toujours réservées à ceux qui sont préparés !

scénarios d'application respectifs

Différents modes de déploiement Redis conviennent à différents scénarios d'application. Voici des suggestions pour différents scénarios :

  1. Mode autonome :
    • Scénarios applicables : environnements de développement et de test, applications à petite échelle, stockage de données temporaires, données en cache, compteurs temporaires, etc.
  2. Mode maître-esclave :
    • Scénarios applicables : applications avec plus de lectures et moins d'écritures, performances de lecture améliorées et sauvegarde redondante de certaines données.
  3. Mode sentinelle :
    • Scénarios applicables : scénarios qui nécessitent une haute disponibilité et un basculement automatisés, et nécessitent une haute disponibilité des données.
  4. Mode cluster :
    • Scénarios applicables : applications à grande échelle nécessitant une haute disponibilité, des performances élevées et une distribution de données, ainsi que des scénarios d'écriture et de lecture à grande échelle.

Pris ensemble, le choix du bon modèle de déploiement Redis dépend des besoins et des priorités de votre application. Si vous avez besoin d'une simple mise en cache ou d'un stockage temporaire, vous pouvez choisir le mode autonome. Si vous avez besoin d'une séparation lecture-écriture et d'un certain degré de haute disponibilité, vous pouvez choisir le mode maître-esclave. Si vous avez des exigences élevées en matière de haute disponibilité et que vous ne souhaitez pas gérer manuellement le basculement, vous pouvez choisir le mode Sentinel. Et si vous avez besoin de haute disponibilité, d'évolutivité et de distribution de données, vous pouvez choisir le mode cluster. Quel que soit le modèle que vous choisissez, vous devez faire des compromis et prendre des décisions en fonction des besoins réels.

C'est le début de l'automne, et l'été 2023 est devenu hier, bénissez-nous, bénissez-nous les uns les autres, le ciel est frais et l'automne, tout sera réussi ! allez! ! !

Je suppose que tu aimes

Origine blog.csdn.net/weixin_53742691/article/details/132174609
conseillé
Classement