文章目录
简介
一、下载Redis for Windows
为了测试在VS2019下开发的客户端代码,搭建一个基于Windows下哨兵模式。
和搭建windows下简易的redis集群环境所说的一样,采用Redis-x64-5.0.10 for Windows版本。下载地址参照前文。
二、哨兵(Sentinel)模式架构图
3个节点,其中1个做master,2个做slave,3个哨兵。
配置如表格所示:
| 服务类型 | 是否是主服务器 | IP地址 | 端口 |
|---|---|---|---|
Redis | 是 | 127.0.0.1 | 7000 |
Redis | 否 | 127.0.0.1 | 7001 |
Redis | 否 | 127.0.0.1 | 7002 |
Sentinel | - | 127.0.0.1 | 27000 |
Sentinel | - | 127.0.0.1 | 27001 |
Sentinel | - | 127.0.0.1 | 27002 |
三、配置主从模式
先配置好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.conf、sentinel2.windows.conf、sentinel3.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。