redis主从
1.master(vim redis.conf):
#save 900 1 #save 300 10 #save 60 10000 appendonly yes slave-read-only yes #master服务器关闭RDB,开启AOF,并开启slave服务器只读
2.slave1(vim redis6380.conf):
port 6380 save 900 1 save 300 10 save 60 10000 dbfilename dump6380.rdb slaveof localhost 6379 appendonly no #slave1服务器开启RDB,关闭AOF
3.slave2(vim redis6381.conf):
port 6381 #save 900 1 #save 300 10 #save 60 10000 dbfilename dump6381.rdb slaveof localhost 6379 appendonly no #slave2服务器关闭RDB和AOF
注意:每次启动一台slave服务器,都要从master服务器获取一个(当时)完整的RDB备份,所以不能一次性启动多台slave服务器,因为master服务器I/O压力会变大
4.sentinel监控配置(vim sentinel.conf):
sentinel monitor mymaster ::1 6381 1 sentinel auth-pass def_master 123456 sentinel down-after-milliseconds def_master 30000 ##master被当前sentinel实例认定为“失效”的间隔时间 ##如果当前sentinel与master直接的通讯中,在指定时间内没有响应或者响应错误代码,那么 ##当前sentinel就认为master失效(SDOWN,“主观”失效) ##<mastername> <millseconds> ##默认为30秒
sentinel failover-timeout mymaster 90000 sentinel can-failover def_master yes ##当前sentinel实例是否允许实施“failover”(故障转移) ##no表示当前sentinel为“观察者”(只参与"投票".不参与实施failover), ##全局中至少有一个为yes
##sentinel notification-script mymaster /var/redis/notify.sh
sentinel monitor mymaster ::1 6381 1,这个参数,根据测试,这个端口的节点会作为一个观察者的角色,当master发生故障时,该节点不会被提升为新的master节点