复制六份redis,修改各个配置文件
主服务配置(redis.windows.conf)
port 6000
bind 192.168.1.223
requirepass 123456
从1服务配置(redis.windows.conf)
port 6001
bind 192.168.1.223
slaveof 192.168.1.223 6000
masterauth 123456
requirepass 123456
从2服务配置(redis.windows.conf)
port 6002
bind 192.168.1.223
slaveof 192.168.1.223 6000
masterauth 123456
requirepass 123456
哨兵1配置(sentinel.conf)
port 60000
bind 192.168.1.223
sentinel monitor mymaster 192.168.1.223 6000 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123456
protected-mode yes
哨兵2配置(sentinel.conf)
port 60001
bind 192.168.1.223
sentinel monitor mymaster 192.168.1.223 6000 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123456
protected-mode yes
哨兵3配置(sentinel.conf)
port 60002
bind 192.168.1.223
sentinel monitor mymaster 192.168.1.223 6000 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 15000
sentinel auth-pass mymaster 123456
protected-mode yes
redis.windows.conf文件中 port和bind是修改项,其他直接添加
sentinel.conf文件没有的可以直接新建并粘贴进去
配置完成后,运行cmd进入对应目录下
首先将主从服务注册到本地:
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -master>redis-server --service-install redis.windows.conf --loglevel verbose --service-name redis6000
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -slave1>redis-server --service-install redis.windows.conf --loglevel verbose --service-name redis6001
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -slave2>redis-server --service-install redis.windows.conf --loglevel verbose --service-name redis6002
再将三个哨兵注册到本地:
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -sentinel -60000>redis-server --service-install sentinel.conf --sentinel --loglevel verbose --service-name redissentinel60000
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -sentinel -60001>redis-server --service-install sentinel.conf --sentinel --loglevel verbose --service-name redissentinel60001
D:\develop\redisMasterSlaves\Redis-x64-3.2.100 -sentinel -60002>redis-server --service-install sentinel.conf --sentinel --loglevel verbose --service-name redissentinel60002
最后在services.msc中启动刚才配置好的服务
验证主从:
首先启动主服务的客户端,redis-cli -h [ip地址] -p [端口] -a [密码],然后输入info replication,可以看到下面的信息
接着启动从服务的客户端,redis-cli -h [ip地址] -p [端口] -a [密码],然后输入info replication,可以看到下面的信息
主从验证成功之后,接下来验证哨兵:
启动哨兵客户端,redis-cli -h [ip地址] -p [端口],然后输入info sentinel,可以看到下面的信息,可以知道目标监视的服务有2个slave,4个sentinel
主从哨兵都确认配置成功并已经启动成功,接下来进行最后一步,验证主服务宕机后哨兵是否进行故障转移
进入主服务客户端,执行shutdown命令
接着进入哨兵客户端,执行info sentinel命令,可以发现,主服务已经从6000换成6001了
然后启动6000端口的服务,再进入6000端口的客户端,执行info replication,可以看到该端口从master变成slave