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,详细配置节点

 

启动绿色板redis redis sentinel 启动_redis

使用python连接redis sentinel

启动绿色板redis redis sentinel 启动_redis_02