美文网首页
Docker-Reids-配置主从和哨兵

Docker-Reids-配置主从和哨兵

作者: 冷风_f818 | 来源:发表于2019-05-28 14:45 被阅读0次

    上文中,我们使用docker安装了redis,下面来配置一个一主二仆的一个主从结构,并且设置哨兵,基于上文中的环境,我们现在已经有一个reids实例了

    环境准备

    上文中我们是挂载的外部的配置文件,和数据文件,然后我们把这个文件夹复制两个出来,改下名字,如下:

    image

    然后修改这两个新的redis中,配置文件的端口号,分别该为6380 6381

    修改完成之后,分别运行以下命令:

    docker run -p 6380:6380 --name redis-6380 -v /usr/docker/redis-6380/conf/redis.conf:/etc/redis/redis.conf -v /usr/docker/redis-6380/data:/data --privileged=true -d 3459037fcc3a redis-server /etc/redis/redis.conf --appendonly yes
    
    
    docker run -p 6381:6381 --name redis-6381 -v /usr/docker/redis-6381/conf/redis.conf:/etc/redis/redis.conf -v /usr/docker/redis-6381/data:/data  --privileged=true -d 3459037fcc3a redis-server /etc/redis/redis.conf --appendonly yes
    

    运行完成之后,可以用docker ps来查看是否启动成功

    启动好之后,我们就有三个redis的服务了,我这里的ip和端口分别如下:

    172.16.12.3 6379 
    172.16.12.3 6380
    172.16.12.3 6381
    

    主从配置

    环境设置好之后,我们把6379设置为Master,然后6380和6381设置为slave

    先进入6380的容器内部:

    docker exec -it 容器id /bin/bash
    

    使用redis-cli设置主从, 或者是使用远程的redis-cli,执行以下命令:

    SLAVEOF 172.16.12.3 6379
    

    6381也这样操作就好了. 这里要注意的是,如果主机设置了访问密码的话,从机的配置中需要加入以下配置:

    masterauth 123456
    

    两个从机都设置完成之后,主从就搭建好了, 可以通过info replication来查看reids的角色等信息

    哨兵配置

    我们现在是有三个redis的容器,然后我们在每个容器中再启动一个哨兵的服务,也就是说,一个容器中有一个redis的服务,还有一个哨兵的服务

    这里的三个容器的配置都是一样的,这里只说一个的配置

    首先,进入容器内部,命令如下:

    docker exec -ti 容器ID /bin/bash 
    

    进入根目录

    cd /
    

    创建一个哨兵的配置文件

    touch sentinel.conf
    

    用vim编辑这个配置文件,这里容器默认是没有安装vim的,需要自己装一个,命令如下:

    apt-get update
    apt-get install vim –y
    

    安装完成之后,就可以使用vim了,编辑刚创建的配置文件:

    vim sentinel.conf
    

    文件内容如下:

    sentinel monitor mymaster 172.16.12.3 6379 1
    daemonize yes
    logfile "/var/log/redis/sentinel_log.log"
    protected-mode no
    sentinel auth-pass mymaster 123456
    
    • 第一行的配置中 mymaster是给监控主机起的名字,这个是自定义的,然后后面是主机的地址和端口,最后的1表示有多少个哨兵认为主机挂掉了,就进行切换
    • 第二行的配置表示哨兵在后台运行
    • 第三行是哨兵的日志文件地址
    • 第四行把保护模式关闭,保护模式如果开启只接受回环地址的ipv4和ipv6地址链接,拒绝外部链接,而且正常应该配置多个哨兵,避免一个哨兵出现独裁情况,如果配置多个哨兵那如果开启也会拒绝其他sentinel的连接.导致哨兵配置无法生效.
    • 第五行如果redis配置了密码,那这里必须配置认证,否则不能自动切换

    最后启动哨兵,命令如下:

    redis-sentinel /sentinel.conf
    

    至此一个哨兵就配置启动完成了,其他两台的配置是一样的

    验证

    三个哨兵都启动完成之后,可以把master关闭然后去看哨兵的日志,如果进行了重新选举那就ok了

    相关文章

      网友评论

          本文标题:Docker-Reids-配置主从和哨兵

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