十、Redis哨兵模式

  1. 哨兵模式是为了解决在主节点宕机的情况下,自动选举从一个从节点为新的主节点。

  2. 新的主节点选举成功后,先的主节点重启后只能做从节点。

  3. 启动3个测试节点

    一个主节点(6379),两个从节点(6380,6381)

    ​ 主节点信息:

    127.0.0.1:6379> INFO replication
    # Replication
    role:master
    connected_slaves:2
    slave0:ip=127.0.0.1,port=6380,state=online,offset=196,lag=1
    slave1:ip=127.0.0.1,port=6381,state=online,offset=196,lag=1
    master_replid:f9aed96a50befab6510cacf02b51c014a01f9f71
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:196
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:196
    127.0.0.1:6379> 
    
    

    ​ 两个从节点信息:

    #6380节点信息
    127.0.0.1:6380> INFO replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:6
    master_sync_in_progress:0
    slave_repl_offset:154
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:f9aed96a50befab6510cacf02b51c014a01f9f71
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:154
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:1
    repl_backlog_histlen:154
    127.0.0.1:6380> 
    
    
    #6381节点信息
    127.0.0.1:6381> INFO replication
    # Replication
    role:slave
    master_host:127.0.0.1
    master_port:6379
    master_link_status:up
    master_last_io_seconds_ago:4
    master_sync_in_progress:0
    slave_repl_offset:182
    slave_priority:100
    slave_read_only:1
    connected_slaves:0
    master_replid:f9aed96a50befab6510cacf02b51c014a01f9f71
    master_replid2:0000000000000000000000000000000000000000
    master_repl_offset:182
    second_repl_offset:-1
    repl_backlog_active:1
    repl_backlog_size:1048576
    repl_backlog_first_byte_offset:43
    repl_backlog_histlen:140
    127.0.0.1:6381> 
    
    
  4. 编写哨兵模式配置文件

    vim sentinel.conf
    
    #内容
    #最后面的1表示 最少有1个哨兵指明主节点失效,主节点就失效了
    sentinel monitor myredis 127.0.0.1 6379 1
    
  5. 启动哨兵节点,使用单哨兵模式

    redis-sentinel /opt/redisconfig/sentinel.conf 
    

    在这里插入图片描述

  6. 此时结束主节点,哨兵节点等待一段时间(默认30秒)后会选取一个新的主节点

在这里插入图片描述

​ 6380此时的信息为:

127.0.0.1:6380> info replication
# Replication
role:master				#变为主节点
connected_slaves:1
slave0:ip=127.0.0.1,port=6381,state=online,offset=33791,lag=0
master_replid:6e535aa5eaca02161c97dd36466da292289180fc
master_replid2:f9aed96a50befab6510cacf02b51c014a01f9f71
master_repl_offset:33791
second_repl_offset:20963
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:33791
127.0.0.1:6380> 
127.0.0.1:6380> 

​ 6381此时的信息为:

127.0.0.1:6381> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6380		#变为了6380的从节点
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:44033
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:6e535aa5eaca02161c97dd36466da292289180fc
master_replid2:f9aed96a50befab6510cacf02b51c014a01f9f71
master_repl_offset:44033
second_repl_offset:20963
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:43
repl_backlog_histlen:43991
127.0.0.1:6381> 

​ 此时再启动6379,并查看信息:

127.0.0.1:6379> info replication
# Replication
role:slave			#变为了从节点
master_host:127.0.0.1
master_port:6380
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:54444
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:6e535aa5eaca02161c97dd36466da292289180fc
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:54444
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:53206
repl_backlog_histlen:1239
127.0.0.1:6379> 

  1. 多哨兵模式(3个哨兵节点)

    编写配置文件

    #编辑文件
    vim sentine79.conf
    
    #已守护进程模式运行
    daemonize yes
    #运行端口号
    port 26379
    # 添加指明日志文件名
    logfile "/usr/local/bin/sentinel26379.log"
    # 修改工作目录
    dir "/usr/local/bin"
    # 关闭保护模式
    protected-mode no
    # sentinel monitor
    sentinel monitor my-master 127.0.0.1 6379 2
    
    #同样编写sentine80.conf、sentine81.conf文件
    #只需修改相应端口号的地方26380、26381
    
  2. 启动3个哨兵节点

    redis-sentinel /opt/redisconfig/sentinel79.conf
    redis-sentinel /opt/redisconfig/sentinel80.conf
    redis-sentinel /opt/redisconfig/sentinel81.conf
    

    查看进程

在这里插入图片描述

现在断开主节点6379,3个哨兵节点开始退票选取新的主节点

在这里插入图片描述

最终选择了6780为主节点。6379重启后只能作为从节点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值