Redis peut être identifié comme un serveur de dictionnaire distant qui est principalement conçu pour la vitesse. En outre, il est largement utilisé comme une base de données en mémoire et en mémoire NOSQL. En tant que base de données ou cache, il est essentiel de fournir un taux élevé d'accès aux données, de haute disponibilité, de fragmentation des données et de fonctionnalités d'évolutivité. Redis a présenté des solutions Sentinel et Cluster pour aborder les aspects mentionnés.
Cluster redis
La technologie Redis Cluster qui a été introduite à partir de la version 3.0 Active la mise à l'échelle horizontale pour un déploiement redis donné. Avec les clusters redis, les données sont divisées sur plusieurs nœuds de cluster qui fournissent une couche de service de données cohérente et fiable pour les applications.
Il est indispensable d'avoir au moins trois nœuds maîtres pour qu'un cluster fonctionne correctement. De plus, chaque nœud maître doit avoir au moins un seul nœud esclave. En outre, les clusters Redis permettent jusqu'à une certaine mesure la haute disponibilité en favorisant un nœud esclave associé à une instance de maîtrise défaillante dans un matériel / logiciel ou une défaillance du réseau.
Chaque nœud de cluster communique avec d'autres nœuds à l'aide d'un canal de communication de nœud à nœud basé sur un protocole binaire. De plus, chaque nœud est ouvert aux connexions du client en utilisant le port TCP standard.
Ce qui suit est un croquis de haut niveau d'une configuration de cluster Redis de base:
Avantages:
Les inconvénients:
Redis Sentinel
Redis Sentinel est une approche à haute disponibilité pour les déploiements redis qui s'exécute comme un programme distinct en arrière-plan. Il apporte de nombreuses fonctionnalités à vos déploiements Redis en vérifiant constamment l'état du maître et du nœud esclave, en notifiant les modifications significatives liées aux instances surveillées via une API, en initialisant le processus de basculement automatique lorsqu'un échec maître se produit et en agissant comme une source de source de Autorité pour les clients pour découvrir l'adresse IP actuellement active Redis Master Node.
Une configuration Redis Sentinel peut être mise en œuvre en utilisant au moins trois nœuds sentinelles qui peuvent éviter la plupart des problèmes dans un déploiement redis donné. De plus, dans une configuration sentinelle donnée, la valeur du quorum définit le nombre minimum de nœuds sentinelles qui devraient confirmer lorsqu'un maître est échoué.
Généralement, le Redis Sentinel est principalement utilisé pour soutenir la haute disponibilité d'une base de données Redis où elle fonctionne mieux que dans l'approche de clustering.
Ce qui suit est une illustration de haut niveau d'une configuration minimale de Redis Sentinel:
Avantages:
Les inconvénients:
Redis Sentinel vs Cluster
Le cluster redis et la sentinelle sont deux approches où chacun aborde différents aspects liés à un déploiement redis. Pour mettre en évidence, l'approche Redis Cluster est plus adaptée aux implémentations compliquées qui traitent des ensembles de données massifs où il fournit une épisode de données automatique pour une meilleure lecture / écriture de requête, un basculement maître automatique et une réplication avec une grande disponibilité jusqu'à une certaine mesure. De plus, les nœuds de cluster redis peuvent être mis à l'échelle sans effort.
D'un autre côté, le Redis Sentinel se concentre davantage sur des implémentations plus petites avec une haute disponibilité à l'esprit.
Disponibilité
Le cluster Redis ne prend pas en charge pleinement la haute disponibilité. Parce que, si la majorité des maîtres ne sont pas disponibles, le cluster peut baisser. Contrairement à l'approche du cluster, le Redis Sentinel offre une haute disponibilité sans aucune intervention humaine. Plus important encore, la sentinelle peut survivre même avec une seule instance de maîtrise en cours lorsqu'une échec critique se produit.
Fragment de données
Le cluster Redis offre des capacités de fragment où les données sont distribuées entre plusieurs nœuds lorsque les clients ont un accès réseau à tous les nœuds. Il permet une augmentation des performances et de la capacité de stockage des données.
D'un autre côté, Redis Sentinel n'offre pas de capacités de fragment. Parce que l'éclat provoque l'utilisation du déséquilibre du maître et de l'esclave.
Réplication
Les deux approches offrent une réplication maître avec certaines limites. Redis Sentinel permet la réplication de plusieurs couches où plusieurs nœuds esclaves peuvent se reproduire à partir d'une instance de maître donnée. En revanche, l'approche Redis Cluster ne permet pas la réplication de plusieurs couches. Il est seulement capable de reproduire l'instance maître dans un seul nœud esclave. Les deux approches compromettent la cohérence due à la réplication asynchrone.
Évolutivité
Les clusters Redis sont très évolutifs. Il prend en charge jusqu'à des mille nœuds dans une configuration de cluster unique donnée. De plus, les clusters permettent d'ajouter et de retirer les nœuds dynamiquement et sans effort. Redis Sentinel n'est pas évolutif et les écritures sont adressées à l'instance de maître, donc le Sentinel n'est pas en mesure de faire face aux problèmes de séparation en lecture-écriture.
Architecture
Un Redis Sentinel entièrement fonctionnel peut être construit avec seulement trois nœuds. Mais pour configurer un cluster Redis, il nécessite au moins trois nœuds maîtres et trois esclaves qui leur sont attachés, ce qui est plus coûteux que dans le déploiement de Redis Sentinel.
Conclusion
Pour résumer, l'approche Redis Cluster est plus axée sur les déploiements complexes lorsque une évolutivité élevée, des performances élevées et un stockage élevé de données sont importants et que la haute disponibilité n'est pas significative. D'un autre côté, Redis Sentinel est principalement conçu pour des applications simples qui sont principalement axées sur la haute disponibilité. Par rapport à, les deux solutions sont livrées avec leurs avantages et leurs inconvénients, mais pour soutenir les utilisateurs finaux avec un déploiement de Redis plus finement réglé.