• 周日. 9月 25th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

redis哨兵机制配置

admin

11月 28, 2021

1.redis-3.2.100下载:

redis-3.2.100的32位下载:https://pan.baidu.com/s/107xVp6LGT24Fq3GUcAwjNw 提取码:7aqm

redis-3.2.100的64位下载:https://pan.baidu.com/s/1MsF2fzd9XYJP-vvV2P6wPQ 提取码:3uqh

根据自己系统的位数下载对应版本即可。

=====================================

哨兵模式主要针对于主从服务做的高可用机制。所以需要先配置好redis的主从节点。

关于redis的主从配置参考:https://www.cnblogs.com/super-chao/p/15138986.html

=====================================

2.配置哨兵服务并启动:

配置好主从后,配置哨兵模式。哨兵模式检测master是否宕机,如果宕机,将选举slave为新的master。

复制3个redis文件,如图所示:

在sentinel的文件夹下新建文件sentinel.conf和启动文件sentinel_1.bat:

sentinel.conf的内容为:

port 16479
# 主节点名称 IP 端口号 选举次数
sentinel monitor mymaster 127.0.0.1 6479 1
# 心跳检测,多长时间检测一次master是否挂了
sentinel down-after-milliseconds mymaster 5000
# 最多多少个节点
sentinel failover-timeout mymaster 15000

sentinel_1.bat的内容为:

title sentinel_16479
redis-server.exe sentinel.conf --sentinel

其他sentinel文件夹下重复以上操作,只是port要设置为自定义端口号且不冲突。我监测的mymaster是6479端口。sentinel_1.bat修改titile为对应的端口号,用于区分dos窗口。

分别启动三个sentinel哨兵服务,启动后如图,说明启动成功:

 其他两个sentinel一样。

3.测试哨兵机制:

启动6479,64791,64792的redis服务。

 64791,64792一样。

新打开一个cmd窗口,cmd到任意一个redis根目录下,执行命令redis-cli -p 6379.

执行info replication查看节点信息:

 表明6479是master,64791和64792是slave。

ctrl+c退出,redis-cli -p 64791切换到64791,执行info replication:

 表明64791是从节点,主节点是6479.

当我关闭master的dos窗口时,6479的服务会关闭,此时模拟宕机。查看在哨兵机制下,主节点宕机,从节点选举为master的过程。

哨兵服务窗口会打印选举master的日志:

 此时64792变成了master:

 64791的master变成了64792:

 重启6479后,6479会变为从节点,它的master是64792:

 

 64792变成了master,节点信息如下:

总结:

在哨兵模式监测下,会通过ping主节点,不断监测master是否宕机,如果master宕机,就会通过选举机制从从节点中选出master。

sentinel会改变每个redis服务的配置redis.windows.conf中的slaveof。

上例中原来的配置为6479无slaveof, 64791的slaveof是6479, 64792的slaveof是6479.

哨兵机制选举后,配置改变:6479的slaveof是64792, 64791的slaveof是64792, 64792的slaveof被删除。

以64791为例,查看64791的redis.windows.conf配置:

 同时每个哨兵服务的sentinel.conf配置信息也被修改。

 sentinel monitor mymaster 127.0.0.1 6479 1改变成了sentinel monitor mymaster 127.0.0.1 64792 1。

以6479_sentinel_1为例:

 至此,哨兵机制配置和测试完成。

从上面可以看出哨兵机制的作用:

解决redis高可用问题。

主节点的高可用性。

注意:

先有主从同步,然后才有哨兵机制。

哨兵机制(心跳)。

哨兵和redis没有任何关系,是一个单独的应用程序。

心跳检测(ping的方式),检测master是否正常,如果不正常,通过哨兵模式的选举机制,选举新的master。
不正常的服务重启后会变成slave。

发表回复

您的电子邮箱地址不会被公开。