redis主从模式必有单点问题,所以redis的哨兵机制就是来弥补这一问题,接下来我们在Windows环境下配置一下redis的哨兵。

1.下载Windows版redis地址:https://github.com/MicrosoftArchive/redis/releases

2.解压到目录,6379 master, 6380 6381slave

image.png

3.redis主从配置

    3.1 master文件配置redis.windows.conf

           port 6379

    3.2 6380 slave文件配置redis.windows.conf

            port 6380

            slaveof 127.0.0.1 6379

    3.3 6381 slave文件配置redis.windows.conf

            port 6381

            slaveof 127.0.0.1 6379

4.redis哨兵配置

    每一个redis目录中都创建一个文sentinel.conf文件

    4.1 master 6379的sentinel.conf文件配置如下


#当前Sentinel服务运行的端口
port 26379
#master
#Sentinel去监视一个名为mymaster的主redis实例,这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,
#而将这个主实例判断为失效至少需要2个 Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行
sentinel monitor master 127.0.0.1 6381 1
#指定了Sentinel认为Redis实例已经失效所需的毫秒数。当 实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
#只有一个 Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线,这时自动故障迁移才会执行
sentinel down-after-milliseconds master 5000
#指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel config-epoch master 12
#如果在该时间(ms)内未能完成failover操作,则认为该failover失败
sentinel leader-epoch master 13

4.2 slave 6380中的sentinel.conf文件配置

port 26479

#slave1

sentinel monitor master 127.0.0.1 6381 1

sentinel down-after-milliseconds master 5000

sentinel config-epoch master 12

sentinel leader-epoch master 13


4.3 slave 6381中的sentinel.conf文件配置

port 26579

#slave2

sentinel monitor master 127.0.0.1 6381 1

sentinel down-after-milliseconds master 5000

sentinel config-epoch master 12

sentinel leader-epoch master 13

5.启动redis服务

    redis-server.exe redis.windows.conf    --master

    redis-server.exe redis.windows.conf    --slave

    redis-server.exe redis.windows.conf    --slave 

6.测试redis服务

    

image.png


image.png


7.启动哨兵服务

    redis-server.exe sentinel.conf --sentinel

   


image.png