Maison >base de données >Redis >Parlons du mécanisme Sentinel dans Redis et présentons son utilisation !

Parlons du mécanisme Sentinel dans Redis et présentons son utilisation !

青灯夜游
青灯夜游avant
2021-12-15 10:14:032025parcourir

Cet article vous fera comprendre le mécanisme Sentinel dans Redis et vous présentera deux façons d'exécuter Sentinel. J'espère qu'il vous sera utile !

Parlons du mécanisme Sentinel dans Redis et présentons son utilisation !

1. Présentation

Redis-Sentinel est la solution haute disponibilité (HA) officiellement recommandée par Redis Lorsque vous utilisez Redis comme solution haute disponibilité pour maître-esclave, si le maître est en panne, Redis. Lui-même (y compris bon nombre de ses clients) n'implémente pas la commutation maître-esclave automatique, et Redis-sentinel lui-même est également un processus exécuté de manière indépendante. Il peut surveiller plusieurs clusters maître-esclave et effectuer une commutation automatique après avoir découvert que le maître est. vers le bas. . [Recommandations associées : Tutoriel vidéo Redis]

Ses principales fonctions sont les suivantes :

  • Surveillez si Redis fonctionne bien comme prévu de temps en temps
  • Si vous constatez qu'un certain nœud Redis fonctionne correctement ; , vous pouvez notifier un autre processus (comme son client) ;
  • active la commutation automatique. Lorsqu'un nœud maître n'est pas disponible, l'un des multiples esclaves du maître (s'il y a plus d'un esclave) peut être élu comme nouveau maître. Les autres nœuds esclaves changeront l'adresse du maître qu'ils suivent pour être promus à la nouvelle adresse. de l'esclave du maître.

2. Sentinel prend en charge les clusters

De toute évidence, l'utilisation d'un seul processus sentinelle pour surveiller le cluster Redis n'est pas fiable lorsque le processus sentinelle tombe en panne (la sentinelle elle-même a également un problème à point unique, unique. -point de -failure) L'ensemble du système de cluster ne fonctionnera pas comme prévu. Il est donc nécessaire de clusterer sentinelle, ce qui présente plusieurs avantages :

  • Même si certains processus sentinelles sont en panne, le basculement actif/veille du cluster redis peut toujours être effectué
  • S'il n'y a qu'un seul processus sentinelle, si ; ce processus ne s'exécute pas correctement, ou Si le réseau est bloqué, alors le basculement actif/veille du cluster redis ne sera pas possible (problème monopoint) ;
  • S'il y a plusieurs sentinelles, le client redis peut se connecter à n'importe quelle sentinelle à volonté pour obtenir des informations sur le cluster Redis.

3. Version Sentinel

La dernière version stable actuelle de Sentinel s'appelle Sentinel 2 (pour la distinguer de la précédente Sentinel 1). Publié avec le package d'installation redis2.8. Après avoir installé Redis2.8, vous pouvez trouver le programme de démarrage Redis-sentinel dans redis2.8/src/.

Fortement recommandé : si vous utilisez redis2.6 (la version sentinel est sentinel 1), vous devez de préférence utiliser la version redis2.8 de sentinel 2, car sentinel 1 a de nombreux bugs et est officiellement obsolète, c'est donc fortement recommandé pour utiliser redis2.8 et sentinel 2.

4. Exécuter Sentinel

Il existe deux façons d'exécuter Sentinel :

La première

redis-sentinel /path/to/sentinel.confredis-sentinel /path/to/sentinel.conf

第二种

redis-server /path/to/sentinel.conf --sentinel

以上两种方式,都必须指定一个sentinel的配置文件sentinel.conf,如果不指定,将无法启动sentinel。sentinel默认监听26379端口,所以运行前必须确定该端口没有被别的进程占用。

5. Sentinel的配置

Redis源码包中包含了一个sentinel.conf文件作为sentinel的配置文件,配置文件自带了关于各个配置项的解释。典型的配置项如下所示:

sentinel monitor mymaster 127.0.0.1 6379 2

sentinel down-after-milliseconds mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel parallel-syncs mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5

上面的配置项配置了两个名字分别为mymaster和resque的master,配置文件只需要配置master的信息就好啦,不用配置slave的信息,因为slave能够被自动检测到(master节点会有关于slave的消息)。需要注意的是,配置文件在sentinel运行期间是会被动态修改的,例如当发生主备切换时候,配置文件中的master会被修改为另外一个slave。这样,之后sentinel如果重启时,就可以根据这个配置来恢复其之前所监控的redis集群的状态。

接下来我们将一行一行地解释上面的配置项:

sentinel monitor mymaster 127.0.0.1 6379 2

Deuxième 🎜🎜🎜redis-server /path/to/sentinel.conf --sentinel🎜🎜Les deux méthodes ci-dessus doivent être spécifiées A fichier de configuration sentinel sentinel.conf S'il n'est pas spécifié, sentinel ne sera pas démarré. Sentinel écoute le port 26379 par défaut, vous devez donc vous assurer que le port n'est pas occupé par d'autres processus avant de l'exécuter. 🎜

🎜5.🎜 🎜Configuration Sentinel🎜🎜🎜🎜Le package source Redis contient un fichier sentinel.conf comme fichier de configuration sentinel. Le fichier de configuration contient des informations sur chaque configuration. Explication des éléments. Les éléments de configuration typiques sont les suivants : 🎜🎜
🎜sentinel moniteur mymaster 127.0.0.1 6379 2🎜
🎜sentinel en panne après millisecondes mymaster 60000 sentinel failover-timeout mymaster 180000 sentinel synchronisations parallèles mymaster 1 sentinel monitor resque 192.168.1.3 6380 4 sentinel down-after-milliseconds resque 10000 sentinel failover-timeout resque 180000 sentinel parallel-syncs resque 5🎜
🎜Les éléments de configuration ci-dessus configurent deux noms nommés mymaster et resque Master, la configuration. Le fichier n'a besoin que de configurer les informations du maître, et il n'est pas nécessaire de configurer les informations de l'esclave, car l'esclave peut être automatiquement détecté (le nœud maître aura des messages sur l'esclave). Il convient de noter que le fichier de configuration sera modifié dynamiquement pendant l'exécution de Sentinel. Par exemple, lorsqu'un basculement maître-esclave se produit, le maître dans le fichier de configuration sera remplacé par un autre esclave. De cette façon, si Sentinel est redémarré ultérieurement, il peut restaurer l'état du cluster Redis qu'il surveillait précédemment en fonction de cette configuration. 🎜🎜Ensuite, nous expliquerons les éléments de configuration ci-dessus ligne par ligne : 🎜🎜moniteur sentinelle mymaster 127.0.0.1 6379 2🎜

Cette ligne représente que le nom du maître surveillé par sentinel est mymaster et que l'adresse est 127.0.0.1:6379. Que signifient les 2 derniers à la fin de la ligne ? Nous savons que le réseau n'est pas fiable. Parfois, une sentinelle pense à tort qu'un redis maître est mort en raison d'une congestion du réseau. Lorsque la sentinelle est en cluster, la solution à ce problème devient très simple : il suffit que plusieurs sentinelles communiquent entre elles. . Communiquer pour confirmer si un maître est réellement mort. Ce 2 signifie que lorsqu'il y a deux sentinelles dans le cluster qui pensent que le maître est mort, celui-ci peut véritablement être considéré comme indisponible. (Chaque sentinelle du cluster sentinelle communique également entre elles via le protocole de potins).

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer