Redis哨兵模式

| 标签 Redis 

1. 是什么

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

2. 怎么玩(使用步骤)

2.1 调整为一主二仆模式,6379带着6380、6381

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=127.0.0.1,port=6381,state=online,offset=20678,lag=1
slave1:ip=127.0.0.1,port=6380,state=online,offset=20664,lag=1

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:20678
slave_priority:100
slave_read_only:1
connected_slaves:0

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:10
master_sync_in_progress:0
slave_repl_offset:20692
slave_priority:100
slave_read_only:1
connected_slaves:0

2.2 自定义的/myredis目录下新建sentinel.conf文件,名字绝不能错

2.3 配置哨兵,填写内容

sentinel monitor mymaster 127.0.0.1 6379 1

其中mymaster为监控对象起的服务器名称, 1 为至少有多少个哨兵同意迁移的数量。

2.4 启动哨兵

执行redis-sentinel /myredis/sentinel.conf image.png

2.5 当主机挂掉,从机选举中产生新的主机

(大概10秒左右可以看到哨兵窗口日志,切换了新的主机) 哪个从机会被选举为主机呢?根据优先级别:slave-priority 原主机重启后会变为从机。 image.png

2.6 复制延时

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

3. 故障恢复

image.png 优先级在redis.conf中默认:slave-priority 100,值越小优先级越高

偏移量是指获得原主机数据最全的

每个redis实例启动后都会随机生成一个40位的runid


上一篇     下一篇