All rights reserved.No part of this article may be reproduced or distributed by any means,or stored in a database or retrieval system,without the prior written permission of persistenceGoing author
https://blog.csdn.net/persistencegoing/article/details/84376427
redis Sentinel 是一个分布式系统, 你可以在一个架构中运行多个 Sentinel 进程(progress), 这些进程使用流言协议(gossip protocols)来接收关于主服务器是否下线的信息, 并使用投票协议(agreement protocols)来决定是否执行自动故障迁移, 以及选择哪个从服务器作为新的主服务器。
虽然 Redis Sentinel 释出为一个单独的可执行文件 redis-sentinel , 但实际上它只是一个运行在特殊模式下的 Redis 服务器, 你可以在启动一个普通 Redis 服务器时通过给定 --sentinel 选项来启动 Redis Sentinel 。
多个Sentinel 系统用于管理多个 Redis 服务器(instance), 该系统执行以下三个任务:
搭建哨兵模式最好一主二从,因为当主redis挂了,经过投票会从剩下的从服务器中投票选出一个新的成为主服务器
如果不会redis主从搭建的,可以先搭建
https://blog.csdn.net/u010648555/article/details/79427606
如果你的redis设置了密码,请注意修改配置,不然启动会报错,修改注意点请看下面的博客
https://blog.csdn.net/persistencegoing/article/details/92788659
主从搭建好之后,启动搭建好的一主二从三台redis
现在我们就开始配置Sentinel
首先新建sentinel.conf空文件,新建的位置
然后内容为下
#当前Sentinel服务运行的IP
bind 127.0.0.1
#当前Sentinel服务运行的端口
port 26380
#其中mymaster是监控的这一套master-slave的名字,2是2个sentinel认为master有问题就故障转移 127.0.0.1masterIP,
#第一行配置指示 Sentinel 去监视一个名为 mymaster 的主服务器, 这个主服务器的 IP 地址为 127.0.0.1 , 端口号为 6379 ,
#而将这个主服务器判断为失效至少需要 2 个 Sentinel 同意 (只要同意 Sentinel 的数量不达标,自动故障迁移就不会执行)。
#票数在本文中:redis集群中有3个sentinel实例,其中master挂掉啦,这里设置票数为2,表示有2个sentinel认为master挂掉啦,
#才能被认为是正真的挂掉啦。
sentinel monitor mymaster 127.0.0.1 6379 2
#(设置成:protected-mode no;保护模式关闭,如果你不关闭保护模式,启动哨兵的时候,无法正常运行)
protected-mode no
# 3s内mymaster无响应,则认为mymaster宕机了
sentinel down-after-milliseconds mymaster 3000
# 每个时间点只有1个slave对新master进行复制,不并发
sentinel parallel-syncs mymaster 1
#如果10秒后,mysater仍没启动过来,则启动failover
sentinel failover-timeout mymaster 10000
#redis的密码(123456)
sentinel auth-pass mymaster 123456
请注意,如果你的redis没有密码,则不需要sentinel auth-pass mymaster 123456这行。
分别在每个redis下面都新建这个文件,注意修改端口,三个sentinel的端口得不一样,26381,26382
我们之前已经把所有redis都启动好了,现在我们分别启动sentinel
启动命令都是
启动后的样子
这样算是搭建好了,可以看到一主二从的配置信息
然后启动剩下的sentinel
最后所有都启动好了有六个cmd框
妥妥的六个
然后我们可以赋值,看看一主二从是否搭建成功,成功之后我们可以试一试投票设置
我们把master的redis关掉之后,我们可以看当前redis的sentinel
有它的相关的投票过程
我们可以看到一个从redis变主redis了
而且主从复制也是可行的
接下来我们重启之前的主redis,我们发现它已经变成了从redis
如果你的redis设置了密码,从配置不正确,你会发现你之前的主redis重启失败,让你设置redis的密码
这个时候你就检查你每个redis的配置
看你每个redis的密码是否正确,在再每个redis中加
masterauth "123456"
然后关掉全部重启
全部重启的时候
主从和你关闭之前是一致的
比如你测试之前是
A主 B从 C从
关闭A之后 B是主redis
重启A之后 A是从
全部关闭之后
B依旧是主redis A是从
希望大家关注我一波,防止以后迷路,有需要的可以加群讨论互相学习java ,学习路线探讨,经验分享与java求职
群号:721 515 304