redis sentinel简单记录

redis sentinel简单记录

首先说一下Redis,Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)—————详细请看Redis官方网站

sentinel介绍

redis主从配置,master负责写,slave负责读,一个master对应多个从节点,如图

这里写图片描述
从上面图上可见,如果master挂了,整个集群就不能用了,因此redis中提供了sentinel的功能,在每个redis服务端,开启一个sentinel,如果master挂了(ping不通等情况),sentinel从中选取一个slave作为master节点,从而实现集群的稳定。

sentinel配置

基本的sentinel配置
sentinel启动方式,redis-sentinel 文件路径
下面的配置有些是自动生成的,我们配置sentinel.conf只需配置端口和监控的master 地址

port 26379
sentinel monitor myredis ip port 2

我们说一下上面2的含义,即当有投票数超过2时,认为挂了,sentinel 第一个port是指sentinel启动的端口,一般为redis端口+20000,第二个配置是监控的redis的端口。当我使用redis-/redis/sentinel.conf,
会自动生成如下配置

port 26379
sentinel myid 8632561b7cc8b0f3c7f27cf9ceb0733544557693
# Generated by CONFIG REWRITE
dir "/redis"
sentinel monitor myredis 111.231.138.33 6379 2
sentinel config-epoch myredis 2
sentinel leader-epoch myredis 2
sentinel known-slave myredis 123.207.218.234 6379
sentinel known-slave myredis 120.25.195.98 6379
sentinel known-sentinel myredis 10.154.154.100 26379 81d684d023ee1e586b1ea5dc6434284292f1fb7a
sentinel known-sentinel myredis 120.25.195.98 26379 556927af2c33f693ccd536f1ecec0f95e35d8c7a
sentinel current-epoch 2

sentinel原理

Sentinel的“仲裁会”
前面我们谈到,当一个master被sentinel集群监控时,需要为它指定一个参数,这个参数指定了当需要判决master为不可用,并且进行failover时,所需要的sentinel数量,本文中我们暂时称这个参数为票数

不过,当failover主备切换真正被触发后,failover并不会马上进行,还需要sentinel中的大多数sentinel授权后才可以进行failover。
当ODOWN时,failover被触发。failover一旦被触发,尝试去进行failover的sentinel会去获得“大多数”sentinel的授权(如果票数比大多数还要大的时候,则询问更多的sentinel)
这个区别看起来很微妙,但是很容易理解和使用。例如,集群中有5个sentinel,票数被设置为2,当2个sentinel认为一个master已经不可用了以后,将会触发failover,但是,进行failover的那个sentinel必须先获得至少3个sentinel的授权才可以实行failover。
如果票数被设置为5,要达到ODOWN状态,必须所有5个sentinel都主观认为master为不可用,要进行failover,那么得获得所有5个sentinel的授权。

操作记录

sentinel是分布式的,如图网络拓扑图这里写图片描述
在每个redis节点上,有一个sentinel,在主从配置上修改redis.conf配置文件

slaveof ip port 

将主节点和从节点依次启动,查看日志进行观察。
redis-cli>>info查看主从信息,
启动redis-sentinel,日志如图。启动成功后,将主节点停掉,service redis stop,观察日志变化。
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
上面是整个主节点挂了后,sentinel自动处理的过程,再讲主节点启动后成为当前主节点的从,可以查看redis.conf最后一行的配置,sentinel会在上面加上主节点的信息。从上面的日志可以看到,新的主节点和投票的过程。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值