一主多从三哨兵
版本信息
- win Redis-x64-5.0.14.1
配置
节点 | 配置 | 启动服务 |
---|---|---|
master | port 6379 bind 0.0.0.0 repl-diskless-sync yes requirepass 123456 | redis-server.exe ./high/redis.windows6379.conf |
slave1 | port 6380 bind 0.0.0.0 replicaof 127.0.0.1 6379 requirepass 123456 masterauth 123456 | redis-server.exe ./high/redis.windows6380.conf |
slave1 | port 6381 bind 0.0.0.0 replicaof 127.0.0.1 6379 requirepass 123456 masterauth 123456 | redis-server.exe ./high/redis.windows6381.conf |
启动服务
- start-redis-servers.bat
@echo off
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./high/redis.windows6379.conf"
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./high/redis.windows6380.conf"
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./high/redis.windows6381.conf"
主节点(6379)
从节点(6380)
从节点(6381)
测试
哨兵模式
哨兵1
- sentienl26379.conf
protected-mode no
#pidfile /var/run/redis-sentinel26379.pid
#Sentinel monitor <name> <ip> <port> <quorum> name :redis主服务名称,可以自行命名,但是在一个sentinel网络中,一个redis主服务只能有一个名称;ip和port :redis主服务的IP地址和端口号;quorum :表示要将这个主服务器判断为失效并下线至少需要2个sentinel同意;
sentinel myid 66811444ce334ea583090ab4d841fe973d70c08c
#主机认证密码改为123456
sentinel deny-scripts-reconfig yes
#如果当前sentinel与master直接的通讯中,在指定时间内没有响应或者响应错误代码,那么当前sentinel就认为master失效SDOWN,“主观”失效,默认为30秒
sentinel monitor mymaster 127.0.0.1 6379 2
#当failover失败后,每隔1分钟就会进行一次master失败迁移,默认是3分钟
sentinel down-after-milliseconds mymaster 10000
# Generated by CONFIG REWRITE
port 26379
dir "C:\\Users\\Developer\\Desktop\\Redis-x64-5.0.14.1"
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster 123456
哨兵2
- sentienl26380.conf
protected-mode no
#pidfile /var/run/redis-sentinel26380.pid
#默认的哨兵端口号为26379
port 26380
sentinel myid 7fbd269b09694ebeb7089c9e213cd8a94d1b381d
sentinel deny-scripts-reconfig yes
# 监控主节点
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 10000
# Generated by CONFIG REWRITE
dir "C:\\Users\\Developer\\Desktop\\Redis-x64-5.0.14.1"
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster 123456
哨兵3
- sentienl26381.conf
protected-mode no
#pidfile /var/run/redis-sentinel26381.pid
port 26381
sentinel myid b13e43ccdefc01cf8459a94d26ad0eb8eccda7a6
sentinel deny-scripts-reconfig yes
# 监控主节点
sentinel monitor mymaster 127.0.0.1 6379 2
sentinel down-after-milliseconds mymaster 10000
# Generated by CONFIG REWRITE
dir "C:\\Users\\Developer\\Desktop\\Redis-x64-5.0.14.1"
sentinel failover-timeout mymaster 60000
sentinel auth-pass mymaster 123456
启动哨兵
- start-sentinel.bat
@echo off
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./sentinel/sentienl26379.conf --sentinel"
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./sentinel/sentienl26380.conf --sentinel"
start cmd /c "cd /d C:\Users\Developer\Desktop\Redis-x64-5.0.14.1 && redis-server.exe ./sentinel/sentienl26381.conf --sentinel"
注意:redis 主节点6379宕机后,哨兵会从剩下子节点选举出一个作为主服务(如:6380),此时会删除选举出来的主节点配置文件【replicaof 127.0.0.1 6379】这条指令,并把其他节点的配置文件(无则加入)修改指向新的主节点地址和端口【replicaof 127.0.0.1 6380】