环境准备
- 操作系统:windows 10
- redis版本:Redis server v=3.2.100 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=dd26f1f93c5130ee
- 节点与IP规划:192.168.0.1(主),192.168.0.2(从),192.168.0.3(从)
安装步骤
- 修改主节点(192.168.0.1)redis.windows.conf配置信息,将port改成6379,如下图
- 修改从节点(192.168.0.2)redis.windows.conf配置信息,如下图
修改端口
配置主从关联,如下图:
- 修改从节点(192.168.0.3)redis.windows.conf配置信息,如下图
修改端口
配置主从关联,如下图:
- 分别在三个节点上,通过命令行的方式启动redis-server,下图为主节点的启动
其他两个从节点的启动方式跟上面类似。另外,还可以将启动方式注册成windows服务,这样的话操作系统启动时,会自动启动redis相关的服务,避免人工干预。注册成服务的命令如下:
- 通过命令验证redis主从配置,如下图:
大家在主节点上输入上面红框中的命令,如果看到两个从节点的信息,就说明主从配置正确。
上面的图,因为我是在同一台机器上部署了三个节点,所以显示的ip都是一样的,端口是不一样的。
- 在主节点(192.168.0.1)和2个从节点上(192.168.0.2、192.168.0.3)上配置哨兵,增加sentinel.conf,用于监控三个节点的信息,配置文件如下
#Sentinel节点的端口
port 26379
dir "D:\\WorkSoft\\Redis6379\\data"
logfile "D:WorkSoftRedis6379Logs26379.log"
#当前Sentinel节点监控 192.168.0.1:6379 这个主节点
#2代表判断主节点失败至少需要2个Sentinel节点节点同意,注意每个节点的myid要唯一
sentinel myid 70a3e215c1a34b4d9925d170d9606e615a8874f2
#mymaster是主节点的别名
sentinel monitor mymaster 192.168.0.1 6379 2
#每个Sentinel节点都要定期PING命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过30000毫秒且没有回复,则判定不可达
sentinel config-epoch mymaster 2
#当Sentinel节点集合对主节点故障判定达成一致时
#Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel leader-epoch mymaster 2
#故障转移超时时间为180000毫秒
#两个从节点,注意,其他两个节点的配置,下面的两个ip是除掉本机以外的两个ip
sentinel known-slave mymaster 192.168.0.2 6379
sentinel known-slave mymaster 192.168.0.3 6379
#配置其他两个哨兵节点,注意,其他两个节点的配置,下面的两个ip是除掉本机以外的两个ip
sentinel known-sentinel mymaster 192.168.0.2 26379 70a3e215c1a34b4d9925d170d9606e615a8874f3
sentinel known-sentinel mymaster 192.168.0.3 26379 70a3e215c1a34b4d9925d170d9606e615a8874f4
sentinel current-epoch 2
- 在三个节点上分别启动哨兵,命令如下:
redis-server sentinel.conf --sentinel
- 验证哨兵配置,如下图
以上就是redis部署高可用方案,大家有啥问题,可以在评论区留言。谢谢!