文章目录
简介
一、下载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。