• 技术文章 >数据库 >Redis

    聊聊Redis中的Sentinel机制,介绍一下用法!

    青灯夜游青灯夜游2021-12-15 10:14:03转载159
    本篇文章带大家了解一下Redis中的Sentinel机制,介绍一下运行sentinel有两种方式,希望对大家有所帮助!

    1. 概述

    Redis-Sentinel是Redis官方推荐的高可用性(HA)解决方案,当用Redis做Master-slave的高可用方案时,假如master宕机了,Redis本身(包括它的很多客户端)都没有实现自动进行主备切换,而Redis-sentinel本身也是一个独立运行的进程,它能监控多个master-slave集群,发现master宕机后能进行自懂切换。【相关推荐:Redis视频教程

    它的主要功能有以下几点:

    2. Sentinel支持集群

    很显然,只使用单个sentinel进程来监控redis集群是不可靠的,当sentinel进程宕掉后(sentinel本身也有单点问题,single-point-of-failure)整个集群系统将无法按照预期的方式运行。所以有必要将sentinel集群,这样有几个好处:

    3. Sentinel版本

    Sentinel当前最新的稳定版本称为Sentinel 2(与之前的Sentinel 1区分开来)。随着redis2.8的安装包一起发行。安装完Redis2.8后,可以在redis2.8/src/里面找到Redis-sentinel的启动程序。

    强烈建议:如果你使用的是redis2.6(sentinel版本为sentinel 1),你最好应该使用redis2.8版本的sentinel 2,因为sentinel 1有很多的Bug,已经被官方弃用,所以强烈建议使用redis2.8以及sentinel 2。

    4. 运行Sentinel

    运行sentinel有两种方式:

    第一种

    redis-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

    这一行代表sentinel监控的master的名字叫做mymaster,地址为127.0.0.1:6379,行尾最后的一个2代表什么意思呢?我们知道,网络是不可靠的,有时候一个sentinel会因为网络堵塞而误以为一个master redis已经死掉了,当sentinel集群式,解决这个问题的方法就变得很简单,只需要多个sentinel互相沟通来确认某个master是否真的死了,这个2代表,当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。(sentinel集群中各个sentinel也有互相通信,通过gossip协议)。

    更多编程相关知识,请访问:编程视频!!

    以上就是聊聊Redis中的Sentinel机制,介绍一下用法!的详细内容,更多请关注php中文网其它相关文章!

    声明:本文转载于:掘金社区,如有侵犯,请联系admin@php.cn删除
    专题推荐:Redis Sentinel机制
    上一篇:聊聊Redis6中的主从复制架构,看看它有何特点! 下一篇:一文带你了解redis中的位图(bitmap)

    相关文章推荐

    • 深入聊聊Redis中的双链表• 分享一些好用Redis可视化工具• 整理一些常见Redis数据结构(总结)• 聊聊Redis数据结构中的String类型• 浅谈Redis中消息队列和延时消息队列的实现方法• 聊聊Redis6中的主从复制架构,看看它有何特点!

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网