Cet article vous présentera le mode sentinelle dans Redis. J'espère qu'il vous sera utile !
Redis mode maître-esclave. Une fois le nœud maître défaillant, le nœud esclave peut être mis à niveau vers le nœud maître. En même temps, le client doit être averti pour mettre à jour l'adresse du nœud maître. . Par conséquent, Redis fournit le Redis Sentinel
Redis Sentinel
哨兵机制 来解决这个问题。【相关推荐:Redis视频教程】
psync
。此时如果同步不成功,则会进行全量同步,主库执行全量备份的同时,可能会造成毫秒或秒级的 卡顿
Sentinel
节点集合一般来说,每个 Sentinel
节点会不断的 对其他 Sentinel
节点和 Redis
节点发送 PING
,通过是否回复来确认是否在线
down-after-milliseconds
毫秒内,Sentinel
没有收到目标节点的有效回复,则会判定该节点为主观下线。Sentinel
节点会通过 sentinel is-master-down-by-addr
命令,向其它 Sentinel
节点询问对该节点的状态判断。如果超过 <quorum></quorum>
个数的节点判定主节点不可达,则该 Sentinel
Mécanisme Sentinelpsync
. Si la synchronisation échoue à ce moment-là, une synchronisation complète sera effectuée pendant que la base de données principale effectue une sauvegarde complète, un décalage d'une milliseconde ou de deuxième niveau peut se produire🎜🎜🎜Sentinel
🎜🎜Sentinel
surveillera en permanence les autres nœuds Sentinel
et Redis Le nœud
envoie un PING
et confirme s'il est en ligne en répondant ou non 🎜 Si <code>Sentinel
ne reçoit pas de réponse valide du nœud cible dans les millisecondes d'arrêt après millisecondes millisecondes, il déterminera que le nœud est subjectivement hors ligne. 🎜Sentinel
passera sentinel is-master-down-by-addr commande pour interroger d'autres nœuds <code>Sentinel
pour déterminer l'état de ce nœud. Si plus de nœuds <quorum></quorum>
déterminent que le nœud principal est inaccessible, le nœud Sentinel
déterminera que le nœud principal est objectivement hors ligne. 🎜🎜🎜🎜2.Principe de fonctionnement🎜🎜🎜🎜🎜Sentinel
envoie à d'autres nœuds Sentinel
et Redis
nœuds maître-esclave à une fréquence de 1 fois/s
Commande PING
. Sentinel
以 1次/s
频率,向其他 Sentinel
节点、Redis
主从节点发送 PING
指令。PING
命令超过 down-after-milliseconds
,这个实例被 Sentinel
标记为 主观下线。Sentinel
节点,以 1次/s
确认此主服务器是否进入主观下线状态<quorum></quorum>
个数的节点判定主节点不可达,则该 Sentinel
节点会判断主节点为 客观下线。Sentinel
向下线服务器的所欲服务器发送 INFO
命令,会从10次/s
改为 1次/s
。Sentinel
节点之间协商主节点状态,如果主节点处于 SDOWN
状态,则投票自动选出新的 主节点。将剩余的 从节点 指向 新的主节点 进行 数据复制。Sentinel
同意 主服务器 下线时, 主服务器 的 客观下线状态 就会被移除。当 主服务器 重新向 Sentinel
的 PING
命令返回 有效回复 时,主服务器 的 主观下线状态 就会被移除。Redis 采用主从复制的模式,一旦主节点挂掉,从节点正在同步的数据可能会丢失,延迟越大,丢失的越多。
Redis 提供了两个配置项来限制主库的请求处理,分别是 min-slaves-to-write
和 min-slaves-max-lag
。
这两个配置项组合后的要求是,主库连接的从库中至少有 N 个从库,和主库进行数据复制时的 ACK 消息延迟不能超过 T 秒,否则,主库就不会再接收客户端的请求了。
所以,Sentine 无法保证消息完全不丢失,但是也能尽量保证消息少丢失。
Sentinel
Si une instance est à plus de down-after-milliseconds
de la dernière réponse valide à la commande PING
, cette instance est marquée comme Sentinel strong>Sujectif hors ligne.
Sentinel
de ce serveur principal sont surveillés à 1 fois/s Confirmez si le serveur principal est entré dans un état subjectif hors ligne
Si plus de <quorum></quorum>
nœuds déterminent que le nœud principal est inaccessible, alors le Sentinel
Le nœud déterminera que le nœud maître est objectivement hors ligne.
Sentinel
enverra la commande INFO
à tous les serveurs du serveur hors ligne. Ce sera . 10 fois/s
est remplacé par 1 fois/s
. Les nœuds Sentinel
négocient le statut du nœud maître. Si le nœud maître est dans l'état SDOWN
, le vote sélectionnera automatiquement un nouveau nœud maîtrefort >. Pointez les nœuds esclaves restants vers le nouveau nœud maître pour la réplication des données. Lorsqu'il n'y a pas suffisamment de Sentinel
pour accepter la mise hors ligne du serveur principal, le statut hors ligne objectifserveur principal /strong> sera supprimé. Lorsque le serveur principal renvoie une réponse valide à la commande PING
de Sentinel
, le serveur principalstatut hors ligne subjectif de /strong> > sera supprimé.
min-slaves-to-write
et min-slaves-max-lag
. 🎜🎜🎜min-slaves-to-write : cet élément de configuration définit le nombre minimum de bibliothèques esclaves avec lesquelles la bibliothèque principale peut synchroniser les données ; 🎜min-slaves-max-lag : cet élément de configuration définit le nombre minimum ; des bibliothèques esclaves entre les bibliothèques maître et esclave lors de la réplication des données, délai maximum (en secondes) nécessaire à la bibliothèque esclave pour envoyer un message ACK à la bibliothèque maître. 🎜L'exigence après avoir combiné ces deux éléments de configuration est qu'il y ait au moins N bibliothèques esclaves connectées à la bibliothèque maître, et que le délai du message ACK lors de la réplication des données avec la bibliothèque maître ne puisse pas dépasser T. secondes, sinon la bibliothèque principale ne recevra plus les demandes des clients. 🎜🎜Ainsi, Sentine ne peut pas garantir que les messages ne seront pas perdus du tout, mais il peut également essayer de faire en sorte que les messages soient perdus le moins possible. 🎜Sentinel
résout le problème de la haute disponibilité, mais ne résout pas le problème de l'expansion d'un nœud unique du nœud maître. 🎜🎜Pour plus de connaissances sur la programmation, veuillez visiter : 🎜Introduction à la 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!