美文网首页我爱编程
Redis + Sentinel服务搭建

Redis + Sentinel服务搭建

作者: kelgon | 来源:发表于2018-03-27 17:09 被阅读201次

    本来不想写的,但前两天因工作需要新部署一套3Redis + 3Sentinel的架构的时候,发现步骤好多细节全忘了,又重头查官站搞了一遍……还是写下来吧,权当备忘。

    安装Redis Master节点

    下载源码包

    https://redis.io/download

    编译安装

    make PREFIX={destpath} install
    

    进入{destpath},创建相关目录

    mkdir logs conf rdb
    

    redis.conf

    从源码包中把redis.conf拷贝到{destpath}下
    编辑redis.conf,主要关注几个地方:

    bind {ip}  #不要bind 127.0.0.1
    port {port}
    protected-mode yes  #不要关闭protected-mode
    daemonize yes #后台运行
    logfile "{destpath}/logs/redis.log"
    requirepass "{password}"
    dir "{destpath}/rdb"  #dump.rdb输出位置
    

    修改操作系统参数

    编辑/etc/sysctl.conf

    vm.overcommit_memory = 1
    net.core.somaxconn = 1024
    

    立即生效:

    sysctl -p
    

    启动

    bin/redis-server ./redis.conf
    

    验证

    安装配置两个Slave节点

    步骤同上,唯一区别是在redis.conf中增加两行:

    slaveof <masterip> <masterport>
    masterauth "{password}"
    

    验证主从同步

    在master节点写数据,从slave节点读取,具体略

    配置三个Sentinel节点

    sentinel.conf

    在{destpath}下编辑sentinel.conf

    daemonize yes
    loglevel notice
    logfile "{destpath}/logs/sentinel.log"
    bind {ip}
    port {port}
    dir "/tmp"
    sentinel monitor {name} {masterip} {masterport} 2  #name为主从集群标识名,可随便定义
    sentinel down-after-milliseconds {name} 8000  #master失联多久后启动选举
    sentinel auth-pass {name} {password}  #{password}为在redis.conf中配置的
    

    启动

    bin/redis-sentinel ./sentinel.conf
    

    验证

    三个sentinel节点均启动后,使用redis-cli登入任意一个sentinel节点,执行:

    SENTINEL master {name}
    

    会输出当前master的信息,应为当前主节点的ip和port

    SENTINEL slaves {name}
    

    输出slave的信息,应输出除master外另两个Redis实例的ip和port
    上述两个命令输出的flags字段应该为"master"和"slave",如果出现"sdown"、"odown"等信息,则说明配置有误

    failover测试

    连接master节点,执行命令:

    DEBUG sleep 10
    

    此命令会让master节点停止工作10秒钟,如果配置的down-after-milliseconds在10秒以内的话,应当会触发sentinel的选举。
    等待10秒后,连接任意sentinel,执行

    SENTINEL master {name}
    

    应看到返回的master变为了另一个ip,而

    SENTINEL slaves {name}
    

    返回的两个slave中应包含原先的master

    相关文章

      网友评论

        本文标题:Redis + Sentinel服务搭建

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