Redis 哨兵模式

Redis 哨兵模式

介绍

反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

操作步骤

使用主从模式,还是使用的一主两从的方式

创建 sentinel.conf文件

  1. 名字绝不能错
  2. 编辑文件输入:sentinel monitor mymaster 127.0.0.1 6379 1
    • sentinel:做哨兵
    • monitor:监控主机
    • mymaster:给主机起的名称
    • 127.0.0.1:主机IP
    • 6379:主机端口号
    • 1:至少有多少个哨兵同意迁移的数量
  3. 如果你设置了连接密码需要在输入:sentinel auth-pass mymaster 123456(未设置密码,不用输入这行)
    • mymaster:主机名称和上面一样
    • 123456:密码(填写自己的就行)

启动哨兵

执行:redis-sentinel sentinel.conf,可以看到端口号为:26379

模拟主机宕机

将 6379 服务 shutdown,大概10秒左右可以看到哨兵窗口日志,切换了新的主机。

在重启 6379 服务,发现 6379 并未成为主,如下图所示:

复制延时

由于所有的写操作都是先在Master上操作,然后同步更新到Slave上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重,Slave机器数量的增加也会使这个问题更加严重。

故障恢复

  1. 当主机宕机之后,会从从机中挑选一个转成为主机,选择条件依次为:
    (1)选择优先级靠前的:优先级在redis.conf中默认:slave-priority 100,值越小优先级越高
    (2)选择偏移量大的:偏移量是指获得原主机数据最全的
    (3)选择 runid 最小的服务:每个redis实例启动后都会随机生成一个40位的runid

  2. 挑选出新主机之后 sentinel 向原服务发送 slaveof 命令,复制新master

  3. 当宕机的服务重新上线时,sentinel会向其发送 slaveof 命令,让其成为新的主从

posted @ 2022-12-01 09:59  橙香五花肉  阅读(34)  评论(0编辑  收藏  举报