哨兵模式(sentinel)
1 概念
是反客为主的自动版,能够后台自动监视主机是否故障,如果故障了根据投票数自动将从机转换为主机
2 模拟实现
(1)首先先调整一主二从模式,具体搭建方式上一篇博客中有详细说明。设置6379为主,6380、6381为从
(2)在/myredis目录下新建sentinel.conf文件,名字固定
(3)配置哨兵,填写内容
sentinel monitor mymaster 127.0.0.1 6379 1
其中mymaster为监控对象起的服务器名称,1为至少有多少个哨兵同意迁移的数量
(4)启动哨兵
redis-sentinel /myredis/sentinel.conf
(5)关闭主机,查看效果
在6379中输入shutdown关闭服务
可以看到,哨兵选举了6381成为新的主机
到6380和6381查看信息
可以看到6381已经成为新的主机
(6)重新打开6379,查看信息
3 复制延时
由于所有的写操作都是先在Master上操作,然后同步更新到Slave.上,所以从Master同步到Slave机器有一定的延迟,当系统很繁忙的时候,延迟问题会更加严重, Slave机器数量的增加也会使这个问题更加严重。
4 新主机选取规则
(1)选择优先级靠前的
优先级在redis.conf中可以设置,默认为replica-priority 100,值越小优先级越大
(2)选择偏移量最大的
偏移量是指获得原主机的数据最全的
(3)选择runid最小的从服务器
每个redis实例启动会随机生成40位的runid