Windows下搭建Redis哨兵集群模式的方法步骤
作者:苦瓜不苦077
哨兵模式简介
哨兵模式,是基于主从复制模式,主从复制的优点全都拥有,并且主从可以实现自动切换,故障转移等功能,系统的可用性更好,哨兵模式其实就是主从模式的升级版,手动到自动切换,更加健壮。
其缺点是不好在线扩容,集群容量如果达到上限,扩容麻烦
图上则是一主二从三哨兵的架构图
最终搭建好的Redis Sentinel集群模式目录是如下
6379端口是主节点,6380和6381端口是从节点,每个节点下都存在一个哨兵。
实现搭建
首先下载到window系统redis安装包(注意:版本必须在2.8以上,redis2.8版本之后的才支持redis sentinel集群模式)
复制出三份redis,文件夹分别以redis+端口号命名
主节点-6379-配置
修改redis.windows.conf配置文件,大概在40行上下,修改端口为6379.
创建哨兵,其次再新建一个sentinel.conf文件,将里面的port端口修改为26379
# 哨兵sentinel实例运行的端口 port 26379 # 本地ip bind 127.0.0.1 # 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机 sentinel monitor mymaster 127.0.0.1 6379 2 # 设置主机的密码(无密码可以省略) # sentinel auth-pass mymaster admin # 设置未得到主机响应时间,此处代表5秒未响应视为宕机 sentinel down-after-milliseconds mymaster 5000 # 设置等待主机活动时间,此处代表15秒主机未活动,则重新选举主机 sentinel failover-timeout mymaster 15000 # 设置重新选举主机后,同一时间同步数据的从机数量,此处代表重新选举主机后,每次2台从机同步主机数据,直到所有从机同步结束 sentinel config-epoch mymaster 2 # 执行故障转移时, 最多有2个从服务器同时对新的主服务器进行同步 sentinel leader-epoch mymaster 2
从节点-6380-配置
修改redis.windows.conf配置文件,大概在40行上下,修改端口为6380,并且大概在200行新增一个 slaveof 127.0.0.1 6379
,监听主节点。
创建哨兵,其次再新建一个sentinel.conf文件,将里面的port端口修改为26380,其他配置不动
# 哨兵sentinel实例运行的端口 port 26380 # 本地ip bind 127.0.0.1 # 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机 sentinel monitor mymaster 127.0.0.1 6379 2 # 设置主机的密码(无密码可以省略) # sentinel auth-pass mymaster admin # 设置未得到主机响应时间,此处代表5秒未响应视为宕机 sentinel down-after-milliseconds mymaster 5000 # 设置等待主机活动时间,此处代表15秒主机未活动,则重新选举主机 sentinel failover-timeout mymaster 15000 # 设置重新选举主机后,同一时间同步数据的从机数量,此处代表重新选举主机后,每次2台从机同步主机数据,直到所有从机同步结束 sentinel config-epoch mymaster 2 # 执行故障转移时, 最多有2个从服务器同时对新的主服务器进行同步 sentinel leader-epoch mymaster 2
从节点-6381-配置
修改redis.windows.conf配置文件,大概在40行上下,修改端口为6381,并且大概在200行新增一个 slaveof 127.0.0.1 6379
,监听主节点。
创建哨兵,其次再新建一个sentinel.conf文件,将里面的port端口修改为26381,其他配置不动
# 哨兵sentinel实例运行的端口 port 26381 # 本地ip bind 127.0.0.1 # 哨兵监听的主服务器 后面的1表示主机挂掉以后进行投票,只需要2票就可以从机变主机 sentinel monitor mymaster 127.0.0.1 6379 2 # 设置主机的密码(无密码可以省略) # sentinel auth-pass mymaster admin # 设置未得到主机响应时间,此处代表5秒未响应视为宕机 sentinel down-after-milliseconds mymaster 5000 # 设置等待主机活动时间,此处代表15秒主机未活动,则重新选举主机 sentinel failover-timeout mymaster 15000 # 设置重新选举主机后,同一时间同步数据的从机数量,此处代表重新选举主机后,每次2台从机同步主机数据,直到所有从机同步结束 sentinel config-epoch mymaster 2 # 执行故障转移时, 最多有2个从服务器同时对新的主服务器进行同步 sentinel leader-epoch mymaster 2
启动哨兵
分别cd到三个文件夹目录下打开cmd窗口,使用 redis-server.exe ./redis.windows.conf
启动三个主从redis服务
等三个redis服务启动成功之后,接着使用 redis-server.exe ./sentinel.conf --sentinel
启动三个哨兵
查询当前节点是否主节点
cd进入当前redis目录下cmd开启黑窗口, redis-cli.exe -h 127.0.0.1 -p 6379
登录redis客户端
命令 info replication
查看
查看哨兵的状态
命令 redis-cli.exe -p 26379
进入客户端
命令 info sentinel
查看
可以看出sentinel状态正常,能够检测到redis的2个从节点,3个哨兵
宕机测试
将6379端口的主节点redis关闭,模拟宕机的情况。
哨兵投票选举出新的从节点升为主节点。
当6379重新启动之后,自动降为从节点
SpringBoot集成Redis哨兵模式
maven配置
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
spring: redis: password: xxx database: 0 sentinel: password: xxx master: mymaster nodes: - 127.0.0.1:26379 - 127.0.0.1:26380 - 127.0.0.1:26381 lettuce: pool: min-idle: 3 max-idle: 8 max-active: 15 max-wait: 10000
以上就是Windows下搭建Redis哨兵集群模式的方法步骤的详细内容,更多关于Windows搭建Redis哨兵集群的资料请关注脚本之家其它相关文章!