提到哨兵我们第一个印象就是和安全保卫方面相关的。那么在Redis中也是一样的,它也是保卫Redis的运行安全的。Redis在主从复制的模式下,如果主节点发生故障不能提供服务时,那我们可以人工的介入,将其中任何一个从节点晋升为主节点,然后我们还要通知其它子节点更新主节点信息。这样Redis就可以继续提供服务了。但在实际的场景中,如果我们采用人工介入的方式来解决主节点故障等问题是不恰当的,因为只要和人有关的操作就可能会有问题,其二人工进入的方式修复的比较慢。为了解决以上各种问题,于是Redis在2.8版本之后提供了Redis Sentinel(哨兵)功能来解决这种问题。所以这一篇中我们主要介绍Redis Sentinel的详细使用。
在上面我们提到过,当Redis主节点发生故障时,我们可以采用人工介入的主式,选取一个从节点继续提供服务,但这样有很大的不便,无论是对于应用还是运维来说。对于应用方来说,主节点的故障可能导致数据的丢失及读取数据错误,而对于运维来说故障的修复实时性和准确性则无法得到保障。所以当我们遇到上述问题并且Redis在2.8版本之后时,我们就可以使用Redis Sentinel功能,该功能能够自动完成故障发现和故障转移。
Redis Sentinel是一个分布式架构,其中包含若干个Sentinel节点和Redis数据节点。每个Sentinel节点都会对数据节点和其它的Sentinel节点进行监控,当它发现其它节点不可用时,会对该节点进行下线标识。如果被标识的节点是主节点,它会和其它的Sentinel节点进行商量,并且当大多数Sentinel节点都认为主节点不可用时,它们会选举出一个Sentinel节点来完成自动故障转移功能,同时Redis Sentinel会将这个变化实时通知给Redis应用方,且整个过程完全是自动的,无需人工介入。
下面我们看一下Redis主从复制模式和Redis Sentinel架构的区别。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/29964.html