redis哨兵部署

一主两从,三哨兵部署

本次安装基于单机安装成功的情况下,单机安装教程

安装一个Redis服务之后,可以克隆出来3台机器,避免重复安装。

开启哨兵模式,至少需要3个Sentinel实例(奇数个,否则无法选举Leader)。

本例通过3个Sentinel实例监控3个Redis服务(1主2从)。

IP地址	          节点角色&端口
192.168.1.101	Master:6379 / Sentinel : 26379
192.168.1.102	Slave :6379 / Sentinel : 26379
192.168.1.103	Slave :6379 / Sentinel : 26379

在102和103的redis.conf配置中找到被注释的这一行

# replicaof <masterip> <masterport>
replicaof 192.168.1.101 6379

在101、102、103 sentinel.conf配置文件内容,三台机器相同(这里最好新建文件,添加需要的配置,默认的其他配置可能会导致哨兵出问题

daemonize yes
port 26379
protected-mode no
dir "/usr/local/soft/redis/db"
sentinel monitor redis-master 192.168.44.186 6379 2
sentinel auth-pass redis-master password
sentinel down-after-milliseconds redis-master 30000
sentinel failover-timeout redis-master 180000
sentinel parallel-syncs redis-master 1

配置解读:

配置作用
protected-mode是否允许外部网络访问,yes不允许
dirsentinel的工作目录
sentinel monitorsentinel监控的redis主节点
down-after-milliseconds(毫秒)master宕机多久,才会被Sentinel主观认为下线
sentinel failover-timeout(毫秒)1 同一个sentinel对同一个master两次failover之间的间隔时间。2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。3.当想要取消一个正在进行的failover所需要的时间。 4.当进行failover时,配置所有slaves指向新的master所需的最大时间。
parallel-syncs这个配置项指定了在发生failover主备切换时最多可以有多少个slave同时对新的master进行 同步,这个数字越小,完成failover所需的时间就越长,但是如果这个数字越大,就意味着越 多的slave因为replication而不可用。可以通过将这个值设为 1 来保证每次只有一个slave 处于不能处理命令请求的状态。

在3台机器上分别启动Redis和Sentinel

cd /usr/local/soft/redis/bin/;
# 启动redis
./redis-server ../conf/redis.conf;
# 启动哨兵
./redis-sentinel ../conf/sentinel.conf; 或者  ./redis-server ../conf/sentinel.conf --sentinel

在3台机器上查看集群状态:

[root@localhost redis]# /usr/local/soft/redis/bin/redis-cli
127.0.0.1:6379> info replication

结果如下

127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.0.102,port=6379,state=online,offset=965183,lag=1
slave1:ip=192.168.0.101,port=6379,state=online,offset=964901,lag=1
master_failover_state:no-failover
master_replid:abe59281825e1ef9343d4b345c835ca63396f54d
master_replid2:41bd4fdb2793d6f76cfbf1c2573d68cd90601d91
master_repl_offset:965183
second_repl_offset:22396
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:965183

模拟master宕机,在101执行:

redis> shutdown

注意看sentinel.conf里面的redis-master被修改了,变成了当前master的IP端口。

#查看102和103的集群情况
[root@localhost redis]# /usr/local/soft/redis/bin/redis-cli
127.0.0.1:6379> info replication

在这里插入图片描述

此时102成了master,哨兵模式起作用了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值