哨兵是一个分布式系统,用于对主从结构中的每台服务器进行监控,当出现故障时通过投票选择新的master将所有slave连接到心的master
哨兵的作用
监控:
不断的检查master和slave是否正常进行。
master存活检测,master与slave进行情况检测
通知:
当被监控的服务出现问题时,向其他(哨兵间,客户端发送通知)
自动故障转移
断开master与slave连接,选取一个slave作为master,将其他slave连接到新的master,并告知客户端新的服务器地址;
注意:
哨兵也是一台redis服务器,只是不提供数据服务,通常哨兵配置数量为单数
配置哨兵
启动哨兵:redis-sentinel sentinel-端口号.conf
查看命令:cat sentinel.conf | grep -v “#” | grep -v “^$” 去掉注释替换换行
port 26379
dir /tmp 数据保存目录
sentinel monitor mymaster 127.0.0.1 6379 2 #有2个哨兵认为主机挂了 那就挂了
sentinel down-after-milliseconds mymaster 300000 主机30秒连接没响应认为挂了
sentinel parallel-syncs mymaster 1
当Sentinel节点集合对主节点故障判定达成一致时,Sentinel领导者节点会做故障转移操作,选出新的主节点,原来的从节点会向新的主节点发起复制操作,限制每次向新的主节点发起复制操作的从节点个数为1
sentinel failover-timeout mymaster 180000
故障转移超时时间为180000毫秒
命令:sed ‘s/16379/26380/g’ sentinel-26379 > sentinel-26380.conf
redis-6379主:
port 6379
daemonize no
#logfile "6379.log"
dir /redis-4.0.0/data
dbfilename dump-6379.rdb
rdbcompress yes
rdbchecksum yes
save 10 2
appendonly yes
appendfsync always
appendfilename appendonly-6379.aof
bind 127.0.0.1
database 16
redis-6380从:
port 6380
daemonize no
#logfile "6380.log"
dir /redis-4.0.0/data
slaveof 127.0.0.1 6379