搭建windows下redis哨兵模式

简介

一、下载Redis for Windows

为了测试在VS2019下开发的客户端代码,搭建一个基于Windows下哨兵模式。

搭建windows下简易的redis集群环境所说的一样,采用Redis-x64-5.0.10 for Windows版本。下载地址参照前文。

二、哨兵(Sentinel)模式架构图

3个节点,其中1个做master,2个做slave,3个哨兵。

复制
复制
3个哨兵
Master
Slave1
Slave2

配置如表格所示:

服务类型是否是主服务器IP地址端口
Redis127.0.0.17000
Redis127.0.0.17001
Redis127.0.0.17002
Sentinel-127.0.0.127000
Sentinel-127.0.0.127001
Sentinel-127.0.0.127002

三、配置主从模式

先配置好3个节点,1个做主模式,2个做从模式。

把下载好解压的文件夹复制3份,分别命名:7000、7001、7002。

修改7000中的配置文件redis.windows.conf,如下:

port 6379
改成
port 7000

修改7001中的配置文件redis.windows.conf,如下:

port 6379
# slaveof <masterip> <masterport>
改成
port 7001
slaveof 127.0.0.1 7000

修改7002中的配置文件redis.windows.conf,如下:

port 6379
# slaveof <masterip> <masterport>
改成
port 7002
slaveof 127.0.0.1 7000

分别启动3个节点:(方法和搭建windows下简易的redis集群环境所说的一样)

在这里插入图片描述

四、测试主从

分别连接3个节点:

redis-cli -h 127.0.0.1 -p 7000
redis-cli -h 127.0.0.1 -p 7001
redis-cli -h 127.0.0.1 -p 7002
1、分别使用info replication看信息

如下图:

在这里插入图片描述

看到主从不同的角色是正确的。

2、读写键值

主设置键值:

从能读取到键值

从设置键值,提示只读:

在这里插入图片描述

五、配置哨兵

在7000的目录中,复制配置文件redis.windows.conf成3份,分别命名为:sentinel1.windows.confsentinel2.windows.confsentinel3.windows.conf

其中sentinel1.windows.conf如下修改:

port 27000
sentinel monitor mymaster 127.0.0.1 7000 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000

sentinel monitor mymaster 127.0.0.1 7000 2 表示哨兵监视的是127.0.0.1:7000,2为投票数,表示有2个或以上的哨兵认为监视的主节点宕机就启动从机替代。

sentinel down-after-milliseconds mymaster 5000表示有5000毫秒联不通主节点了,就主观认为宕机了。

sentinel parallel-syncs mymaster 1表示故障转移后主从复制数。

sentinel failover-timeout mymaster 60000表示故障转移开始后,超过60000毫秒没完成就认为失败。

其它2个哨兵配置一样的,除了port 27000这个之外,port可以分别取27001、27002。

启动哨兵:

redis-server.exe sentinel1.windows.conf --sentinel
redis-server.exe sentinel2.windows.conf --sentinel
redis-server.exe sentinel3.windows.conf --sentinel

六、测试哨兵

在连接7000的客户端中,shutdown 目前的master服务。

5秒后。使用info replication看信息,可以看到2个从之一变成了主,之前的键值name还在,而且新的主可以设置键值,如下图:

原master 7000 shutdown。

在这里插入图片描述

如图:7002成了新的master。


版权声明:本文为KenZhang1031原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。