widows 搭建redis 1主2从哨兵模式

      redis下载地址

        https://github.com/MicrosoftArchive/redis/releases

 

一、首先把你下载的redis复制两份出来,我的分别如下命名

 

二、修改配置文件

2.1、我的默认Redis-6380为 master,配置文件redis.windows.conf

#bind 127.0.0.1   注释掉,开启远程连接

protected-mode no #关闭私有
port 6381


2.2、Redis-6381和Redis-6382 为 slave,修改配置文件

2.2.1、Redis-6381的 redis.windows.conf

#bind 127.0.0.1   注释掉,开启远程连接

protected-mode no #关闭私有
port 6381
slaveof 192.168.0.152 6380 #配置主节点

2.2.2、Redis-6381的 redis.windows.conf

#bind 127.0.0.1   注释掉,开启远程连接

protected-mode no  #关闭私有
port 6382
slaveof 192.168.0.152 6380  #配置主节点

 

注:到此redis的1注2从配置完毕,但是redis主从模式在master挂掉后,无法自动切换新的master,需要人为干涉。故需要我们配置哨兵监听,达到自动切换master的效果。

 

2.3、启动redis 1注2从集群  命令和批处理方式启动

2.3.1 命令启动

服务端

redis-server.exe redis.windows.conf

客户端

redis-cli.exe -h 127.0.0.1 -p 6380

redis-cli.exe -h 127.0.0.1 -p 6381

redis-cli.exe -h 127.0.0.1 -p 6382
 

测试:进行数据写入,可以看到三个节点都有数据。

2.3.2 批处理方式启动

1.在G:\redis-Sentinel\Redis-6380、G:\redis-Sentinel\Redis-6381和G:\redis-Sentinel\Redis-6382目录下分别新建文件

startRedisServer-6380.bat 

startRedisServer-6381.bat 

startRedisServer-6382.bat 

文件内容如下:

@echo off
redis-server.exe redis.windows.conf
@pause

 

2.在和redis文件夹同级建三个cmd 启动文件,start6380.cmd,start6381.cmd,start6382.cmd

我的目录如下:

start6380.cmd  内容如下:

@echo off
cd Redis-6380
startRedisServer-6380.bat

start6381.cmd  内容如下:

@echo off
cd Redis-6381
startRedisServer-6381.bat

start6382.cmd  内容如下:

@echo off
cd Redis-6380
startRedisServer-6380.bat

 

双击文件启动redis即可。

 

三、配置哨兵

3.1 在G:\redis-Sentinel\Redis-6380、G:\redis-Sentinel\Redis-6381和G:\redis-Sentinel\Redis-6382目录下分别新建文件

sentinel-26380.conf 内容如下:

# 配置 sentinel 端口号
port 26380
protected-mode no
# 以守护进程启动,windows下可注释
# daemonize yes
# 绑定只在本地使用
# bind 127.0.0.1
# 日志文件名称
# logfile "sentinel_26380.log"
# 日志文件存放地址
# dir "./"
# 监控 master 名字叫做 mymaster,地址是 127.0.0.1 端口号是 6379,1 表示有几个 sentinel 认为该 master 出现故障,触发主备切换动作
sentinel monitor mymaster 192.168.0.152 6380 2
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
sentinel down-after-milliseconds mymaster 30000
# 主备切换时,多少个从服务器同步更新数据,数值越小越好
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面: 
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。  
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟
sentinel failover-timeout mymaster 180000

sentinel-26381.conf

# 配置 sentinel 端口号
port 26381
protected-mode no
# 以守护进程启动,windows下可注释
# daemonize yes
# 绑定只在本地使用
# bind 127.0.0.1
# 日志文件名称
# logfile "sentinel_26381.log"
# 日志文件存放地址
# dir "./"
# 监控 master 名字叫做 mymaster,地址是 127.0.0.1 端口号是 6379,1 表示有几个 sentinel 认为该 master 出现故障,触发主备切换动作
sentinel monitor mymaster 192.168.0.152 6380 2
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
sentinel down-after-milliseconds mymaster 30000
# 主备切换时,多少个从服务器同步更新数据,数值越小越好
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面: 
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。  
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟
sentinel failover-timeout mymaster 180000

sentinel-26382.conf

# 配置 sentinel 端口号
port 26382
protected-mode no
# 以守护进程启动,windows下可注释
# daemonize yes
# 绑定只在本地使用
# bind 127.0.0.1
# 日志文件名称
# logfile "sentinel_26382.log"
# 日志文件存放地址
# dir "./"
# 监控 master 名字叫做 mymaster,地址是 127.0.0.1 端口号是 6379,1 表示有几个 sentinel 认为该 master 出现故障,触发主备切换动作
sentinel monitor mymaster 192.168.0.152 6380 2
# 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认30秒
sentinel down-after-milliseconds mymaster 30000
# 主备切换时,多少个从服务器同步更新数据,数值越小越好
sentinel parallel-syncs mymaster 1
# 故障转移的超时时间 failover-timeout 可以用在以下这些方面: 
#1. 同一个sentinel对同一个master两次failover之间的间隔时间。
#2. 当一个slave从一个错误的master那里同步数据开始计算时间。直到slave被纠正为向正确的master那里同步数据时。
#3.当想要取消一个正在进行的failover所需要的时间。  
#4.当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了
# 默认三分钟
sentinel failover-timeout mymaster 180000

3.2 启动三个哨兵 命令和批处理方式

3.2.1 命令方式启动

redis-server.exe sentinel-26380.conf --sentinel

redis-server.exe sentinel-26381.conf --sentinel

redis-server.exe sentinel-26382.conf --sentinel

3.2.2  批处理方式启动

1.在G:\redis-Sentinel\Redis-6380、G:\redis-Sentinel\Redis-6381和G:\redis-Sentinel\Redis-6382目录下分别新建文件

startRedisSentinel-26380.bat 内容如下:

@echo off
redis-server.exe sentinel-26380.conf --sentinel
@pause

startRedisSentinel-26381.bat 内容如下:

@echo off
redis-server.exe sentinel-26381.conf --sentinel
@pause

startRedisSentinel-26382.bat 内容如下:

@echo off
redis-server.exe sentinel-26380.conf --sentinel
@pause

2.在和redis文件夹同级建三个cmd 启动文件,start6380sentinel.cmd,start6381sentinel.cmd,start6382sentinel.cmd 

我的目录如下:

start6380sentinel.cmd

@echo off
cd Redis-6380
startRedisSentinel-26380.bat

start6381sentinel.cmd

@echo off
cd Redis-6381
startRedisSentinel-26381.bat

start6382sentinel.cmd  

@echo off
cd Redis-6382
startRedisSentinel-26382.bat

3.启动后页面

 

收工;

四、测试

我就不写了,直接挂掉主节点,观察就可以啦!

参考:

https://www.cnblogs.com/zhukaixin/p/12810085.html

https://www.php.cn/windows-417893.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值