一、搭建Redis一主二从
分别复制三份Redis工作文件夹,里面内容一致
接着修改7002的配置文件,【redis.windows-service.conf】
port 7002
改成
port 7002
slaveof 127.0.0.1 7001
7003也同样修改
port 7003
slaveof 127.0.0.1 7001
这样就指定了7001为主机,7002、7003为从机
二、启动三个Redis
分别打开三个CMD控制台窗口(以管理员身份),执行命令,启动三个Redis
d:
cd D:\RedisCluster5.0\RedisSentinel\7001
redis-server.exe redis.windows-service.conf
d:
cd D:\RedisCluster5.0\RedisSentinel\7002
redis-server.exe redis.windows-service.conf
d:
cd D:\RedisCluster5.0\RedisSentinel\7003
redis-server.exe redis.windows-service.conf
启动后不要关闭窗口!
三、配置哨兵
在7001目录下,复制三份redis.windows-service.conf文件,重命名为sentinel1.windows.conf、sentinel2.windows.conf、sentinel2.windows.conf,修改配置如下:
sentinel1.windows.conf:
port 27001
sentinel monitor mymaster 127.0.0.1 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
sentinel2.windows.conf:
port 27002
sentinel monitor mymaster 127.0.0.1 7001 2
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 60000
sentinel3.windows.conf:
port 27003
sentinel monitor mymaster 127.0.0.1 7001 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毫秒没完成就认为失败。
自动故障转移(Automatic failover)
:当主节点因为以外下线了,哨兵就会从从节点中选出新的主节点,并让其他从节点复制新的主节点的数据。
监控(Monitoring)
:哨兵会监控主节点和从节点是否正常运作
四、启动哨兵
分别打开三个CMD控制台窗口(以管理员身份),进入7001目录下,分别执行命令
d:
cd D:\RedisCluster5.0\RedisSentinel\7001
redis-server.exe sentinel1.windows.conf --sentinel
d:
cd D:\RedisCluster5.0\RedisSentinel\7001
redis-server.exe sentinel2.windows.conf --sentinel
d:
cd D:\RedisCluster5.0\RedisSentinel\7001
redis-server.exe sentinel3.windows.conf --sentinel
启动后不要关闭窗口!
五、测试哨兵功能
1.再开启一个CMD窗口,进入7001目录下
2.登录7002,查看mster状态
redis-cli.exe -p 7002
info replication
可以看到7002的master是7001
3.登录7003,查看mster状态
可以看到7003的master也是7001
4.此时,登录7001,shutdown停掉主机7001
5.等待5秒过后,再登录其他两个从机,看哨兵是否将他们其中一台升为主机
可以看到,7002被提升为了主机,这就是哨兵模式发挥了作用