sentinel 是为了发现redis故障且故障转移的原理
1,多个sentinel发现并确认master有问题。
2,选举出一个sentinel作为领导。
3,选出一个slave作为master。
4,通知其余slave成文新的master的slave
5,通知客户端主从变化
6,等待老的master复活成为新的master的slave
sentinel的安装与配置
1,配置开启主从节点
。redis主节点配置
。启动命令:redis-server redis-7000.conf.
。redis-7000.conf中的配置项如下(注意这是简单的配置,没有配置RDB等配置,如有需要自行添加):
。port 7000
。daemonize yes
。pidfile /var/run/redis-7000.pid
。logfile "7000.log"
。dir "/opt/soft/redis/data/"
。redis从节点配置
。启动命令:
。redis-server redis-7001.conf
。redis-server redis-7002.conf
。redis-7001.conf中的简单配置:
。port 7001
。daemonize yes
。pidfile /var/run/redis-7001.pid
。logfile "7001.log"
。dir "/opt/soft/redis/data/"
。slaveof 127.0.0.1 7000 #跟主节点的配置唯一不同的就是多了这一项
。redis-7001.conf中的简单配置:
。port 7002
。daemonize yes
。pidfile /var/run/redis-7002.pid
。logfile "7002.log"
。dir "/opt/soft/redis/data/"
。slaveof 127.0.0.1 7000 #跟主节点的配置唯一不同的就是多了这一项
2,配置开启sentinel监控主节点(sentinel是特殊的redis节点)
。sentinel配置文件主要配置(注意${prot}只是一个占位符真实是自己要填写的端口号):
。port ${port}
。dir "/opt/soft/redis/data/"
。logfile "${prot}.log"
。sentinel monitor mymaster 127.0.0.1 7000 2
#mymaster是指监控的主节点名字是什么(是自定义的名称)
#127.0.0.1是ip地址
#7000是端口号
#2的位置参数是指几个sentinel发现master有问题就发动故障转移
。sentinel down-after-milliseconds mymaster 30000
#就是sentinel对master不断ping,在规定时间内一直ping,ping不通就是认为有问题的,上面配置的时间是30000毫秒就是等于30秒
。sentinel parallel-syncs mymaster 1
#就是选择出新的master,其他老的节点对新的master的复制,该配置就是控制室并发的还是串行的,该配置是1代表每次只能是一个
。sentinel failover-timeout mymaster 180000
#转移时间
。启动sentinel命令:
。redis-sentinel sentinel的配置文件.conf
。连接sentinel
。redis-cli -p sentinel的端口号
3,实际应该在多台机器部署
4,详细配置节点
使用python连接redis sentinel