美文网首页
redis哨兵模式

redis哨兵模式

作者: 夜醉梦紅尘 | 来源:发表于2019-11-26 12:15 被阅读0次

    理解哨兵模式

    哨兵结构图
    故障转移
    多集群

    为什么要设置三个哨兵?

    类似于nginx的高可用,一个宕机也可继续执行,如果master宕机,三个哨兵可以通过投票来判定master是否真的宕机

    按照架构图,配置六台机器

    一台主,两台从,三个哨兵
    配置主服务器

    1.docker run -itd --name redis-server centos
    2.docker exec -it redis-server bash
    3.yum install redis
    4.vi /etc/redis.conf
    修改
    bind 0.0.0.0   #允许任何主机
    daemonize yes     #允许后台启动redis
    保存退出后可以启动 
    5./usr.bin/redis-server /etc/redis.conf
    6.redis-cli   
    

    配置从服务器

    方式一(按部就班):
    1.docker run -itd --name redis-slave centos
    2.docker exec -it redis-slave bash
    3.yum install redis
    4.vi /etc/redis.conf
    修改
    bind 0.0.0.0   #允许任何主机
    daemonize yes     #允许后台启动redis
    slaveof redis-server 6379
    5./usr.bin/redis-server /etc/redis.conf
    6.redis-cli  
    7.slaveof redis-server 6379
    
    方式二(打包镜像起容器就完事):
    1.docker commit redis-server centos-redis
    #2.docker image save centos-redis > centos-redis.tar.gz(导出)
    #3.docker image load -i centos-redis.tar.gz(导入)
    4.docker run -itd --name redis-slave  centos-redis
    5.docker run -itd --name redis-slave2  centos-redis
    6.docker run -itd --name redis-sentinel1 centos-redis
    7.docker run -itd --name redis-sentinel2  centos-redis
    8.docker run -itd --name redis-sentinel3 centos-redis
    
    

    补充说明 两个从服务器配置要写入 slaveof redis-server 6379

    配置哨兵服务器

    vi /etc/redis-sentinel.conf
    
    protected-mode yes      
    bind 0.0.0.0
    daemonize yes
    sentinel monitor mymaster  172.17.0.3 6379 2
    // 名称为 mymaster ,IP 为 127.0.0.1 端口为 6380
    // 最后的 2  是指最少有 2 给 Sentinel 实例同意一台 redis 服务器宕机,才会认为 客观下线。
    // sentinel monitor  自定义的主节点名称 主节点的 IP  主节点端口   票数 
    

    成功的集群信息


    查看哨兵信息

    我们配置好的机器以及ip


    image.png

    停止master机器后,选取了一个从成为了主

    redis-cli -h 172.17.0.3 -p 6379 shutdown   #停主
    redis-cli info replication     #查看某个从,它成为了主
    
    image.png

    再起这个redis-server机器就成了从服务器

    后续补充知识点

    哨兵选举master

    票数和领导者选举有关系

    领导者选举的事件发生,必须满足下面的条件

    max(票数, (哨兵的个数 / 2) + 1 ) 个哨兵参加选举

    才可以选举出领导者,从而完成故障转移。
    例子:

    比如有 5 个哨兵, 配置的票数是 4
    
    max(4, (5 / 2) + 1)
    
    max(4, 3.5)
    4 最大
    结果就是需要 4 个哨兵参与选举才可以。
    

    相关文章

      网友评论

          本文标题:redis哨兵模式

          本文链接:https://www.haomeiwen.com/subject/mbkewctx.html