redis哨兵模式说明与搭建详解

哨兵模式是redis高可用的一种解决方案。

哨兵必须用三个实例取保证自己的高可用,但是哨兵+主从模式是不能保证消息不丢失的。

为什么用三个来保证呢?

假设现在有两个服务器,第一台有redis主节点M1,和哨兵S1,第二台有redis从节点S2,哨兵S2。

如果M1宕机,S1和S2中只要有1个哨兵认为master宕机就可以还行切换,此时哨兵大多数(我理解的大多数的过半)还在运行,那么S1,S2能通过选举,拿出来一个哨兵进行故障转移。

如果第一个服务器整个宕机,M1,S1都已经死掉了,此时S2发现M1宕机,但是哨兵只有一个了,不满足大多数的机器存活,无法选举,就没有办法来执行故障转移。虽然另外一台机器还有一个R1,但是故障转移不会执行。

经典的是三节点的哨兵集群

如果M1所在机器宕机了,那么三个哨兵还剩下2个,S2和S3可以一致认为master宕机,然后选举出一个来执行故障转移。

同时3个哨兵的大多数是2,所以还剩下的2个哨兵运行着,就可以允许执行故障转移。

接下来谈一谈怎么做哨兵

首先我们需要搭建个一主两从的redis,单个节点的redis安装链接如下

redis安装包下载地址Redis

我们可以将单个redis安装三次(6381为主机,6380,6379为从机),然后修改配置文件

1.配置redis.conf文件中的端口号分别为6379,6380,6381,

2.daemonize均为yes

3.6380和6379 均添加slaveof 127.0.0.1 6379  (我是在一台服务器上安装的,若不是一台服务器,ip换为redis主机ip)

 分别使用./src/redis-server ./myredis/redis.conf 命令启动redis。

启动后使用./src/redis-cli -p 6379 -h 127.0.0.1 连接redis的客户端  (ip和端口换成自己的)

再执行info Replication,即可看到主从状态 

三台状态如下

 

主从就搭建好了。

接下来配置哨兵

将刚刚的文件redis-6379 复制三份,分别重命名为sentinel-26379,sentinel-26380,sentinel-26381

然后分别修改三个文件的配置文件sentinel.conf 

#端口号 (换成相应sentinel的端口号)
port 26379 
 
#守护进程,后台启动
daemonize yes
 
#监测redis集群的主机
sentinel monitor mymaster 127.0.0.1 6381 1

 修改完毕之后使用./src/sentinel-server ./sentinel.conf启动,成功后,

使用./src/resic-cli -p 26379 命令连接sentinel(其他两个也可以使用这个连接),成功后,使用info命令,可以看到监听的redis集群状态

作者:王云召原文地址:https://blog.csdn.net/wangyunzhao007/article/details/122298571

%s 个评论

要回复文章请先登录注册