Redis 哨兵机制的配置与使用(十二)

主从模式中的master和slave都要设置masterauth主节点认证密码,且要设置同样的密码才可以使用哨兵模式进行监控。最重要的是一开始作为主节点的master不要忘记设置masterauth,否则故障转移之后,原master恢复之后,不能进行同步。

一、配置哨兵

在redis的解压目录,找到sentinel.conf并复制到redis的安装目录下,安装目录一般在/usr/local/redis/,然后修改sentinel.conf。配置如下:

配置文件中的<master-name>可以随意指定,但是整个哨兵集群中的<master-name>要保持一直。

# 哨兵启动的端口
port 26379
# 哨兵启动后的pid文件位置
pidfile "/usr/local/redis/sentinel/redis-sentinel.pid"
# 哨兵的工作目录,一般放在redis安装目录下
dir "/usr/local/redis/sentinel"
# 设置哨兵启动后为后台运行,默认为no
daemonize yes
# 关闭哨兵的保护机制,所有ip都可以访问,否则还的单独配置可访问ip
protected-mode no
# 哨兵的日志文件位置,和哨兵的工作目录放一块
logfile "/usr/local/redis/sentinel/redis-sentinel.log"



# 配置哨兵 
# 格式 sentinel monitor <master-name> <ip> <redis-port> <quorum>
# master-name为master节点的名称,随意指定,但是哨兵中的配置一定要统一
# ip master的ip地址
# redis-port master的poet
# quorum 法定人数,判定可进行故障转移的哨兵的个数
sentinel monitor mymaster 127.0.0.1 6379 2

# 密码
# 格式 sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster password

# 格式 sentinel down-after-milliseconds <master-name> <milliseconds>
# master被sentinel认定为失效的间隔时间
sentinel down-after-milliseconds mymaster 30000

# 格式 sentinel parallel-syncs <master-name> <numreplicas>
# 故障转以后,剩余的slaves和新的master做数据同步的并行个数
sentinel parallel-syncs mymaster 1

# 格式 sentinel failover-timeout <master-name> <milliseconds>
# 主备切换的超时时间,哨兵要去做故障转移,这个时候哨兵也是一个进程,如果他没有去执行,超过这个
# 时间后,会由其他的哨兵来处理
sentinel failover-timeout mymaster 180000

 哨兵的启动命令如下:

redis-sentinel /usr/local/redis/sentinel.conf

 测试:

1、master挂掉,查看是否有slave变成了master以及其他slave重新绑定新master

2、原master恢复后,查看当前状态是否为slave以及与新master的同步状态。

二、哨兵信息检查

进入到redis哨兵的客户端的命令

redis-cli   -p   26379

redis哨兵的常用命令

# 查看imooc-master下的master节点信息
sentinel master imooc-master

# 查看imooc-master下的slaves节点信息
sentinel slaves imooc-master

# 查看imooc-master下的哨兵节点信息
sentinel sentinels imooc-master

三、原Master恢复

原master恢复以后,会重新加入到主从模式中,但是原master会变成slave。如果新的master挂掉之后,原master(现在是slave)会和其他slave竞争master。

注意:原Master恢复成slave之后,可能会同步状态不OK,状态为master_link_status:down,这是为什么呢?

这是因为我们一开始只设置了最初slave的masterauth,这是用于同步master的数据,但是原master一开始是master角色是不受影响的,当master转变为slave后,由于他没有设置masterauth,所以他不能从新的master同步数据,随之导致info replication的时候,同步状态为down,所以只需要修改redis.conf中的masterauth为新master的认证密码即可。

一般master数据无法同步给slave的方案检查为如下:

  1. 网络通信问题,要保证互相ping通,内网互通。
  2. 关闭防火墙,对应的端口开放(虚拟机中建议永久关闭防火墙,云服务器的话需要保证内网互通)。
  3. 统一所有的密码,通过逐台检查机器以防某个节点被遗漏。

由此我们可以看出,主从模式中的master和slave都要设置masterauth主节点认证密码,且要设置同样的密码才可以使用哨兵模式进行监控。

四、部署约定

1、哨兵节点至少要有3个或者奇数个节点

这样我们才能保证客观下线的准确度和哨兵leader选举的准确度。quorum的值等于哨兵总数除以2在加1,哨兵数是3,quorum就是2;哨兵数是5,quorum就是3;

2、哨兵要部署在不同的计算机节点

3、一组哨兵只监听一组主从

哨兵可以同时监听多组不同的主从,但是这样的健壮性不会很高,最好是一组哨兵只监听一组主从。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值