• 基于 docker 的redis 主从+哨兵(快速部署)


    很简单(字多的步骤见:http://www.cnblogs.com/vipzhou/p/8580495.html)

    1、直接启动2个容器

    docker network create --subnet 172.30.0.0/16 yapi_net

    mkdir -p /opt/redis_01/data
    mkdir -p /opt/redis_02/data
    docker network inspect yapi_net
    docker run  --network yapi_net --ip 172.30.0.21    -d --name redis_01   --restart always  -p 6380:6379   -v  /opt/redis_01/data:/data  docker.io/redis
    docker run  --network yapi_net --ip 172.30.0.22    -d --name redis_02   --restart always  -p 6381:6379   -v  /opt/redis_02/data:/data  docker.io/redis

    2、分别进去其中两个容器,进行中从配置,这里只演示一个

    docker exec -it redis_6379 /bin/bash

      redis-cli  -h  ip  -a  password

        SLAVEOF 172.30.0.21  6379         #意思是自己属于哪个机器的从

        INFO replication   #查看   master_link_status:up  表示成功

    3、进去一台从 配置哨兵()

    cat << EOF > sentinel.conf
    > sentinel monitor mymaster 172.30.0.21  6379 1     #这里填写主的信息
    > EOF

     redis-sentinel sentinel.conf      #启动哨兵

    大功告成

    ------------------------------------------------------------------------------------------------

    在两台真机上部署

    SLAVEOF 要指定真机ip和暴露端口,哨兵也要制定真机ip 和暴露端口,否则哨兵没用

    哨兵作用:通过哨兵监控主redis,当主redis挂掉时,会自动切换从为主,哨兵不会退出,而是持续监控原redis主,当原redis主,重新启动后,会将它设置为redis从

     ----------------------------------------------------------------------------------------------------

    另:也可以指定配置文件运行。

    配置文件修改部分:

    bind 0.0.0.0
    
    daemonize no  #关闭守护进程,在前台运行,
    
    dir /data/ 
    
    masterauth password  #主从认证密码,否则主从不能同步,最好主从密码一致
    
    requirepass password  #访问redis密码
    
    appendonly yes  #采用aof持久化

    制作镜像

    cat Dockerfile
    FROM redis
    ADD  redis.conf /usr/local/etc/redis/redis.conf

    docker build -t myredis .


    docker run -d --name redis --restart always -p 6379:6379 -v /opt/redis/:/data myredis redis-server /usr/local/etc/redis/redis.conf
    配置从库
    配置哨兵,配置文件,只需写两行,其他启动后会自动不全配置文件
    sentinel monitor mymaster 主ip 6379 1
    sentinel auth-pass mymaster password

    启动哨兵

    当主从自动切换后,哨兵的配置的配置文件也会自动改变   

  • 相关阅读:
    cross-domain
    【转】React、Vue访问NotFound
    Flutter环境配置
    antd遇见的坑
    npm源设置
    React中的生命周期函数
    【备忘】javascript原型、Function、eval、闭包、json处理、类、arguments不定
    ADB获取手机信息
    selenium操作
    操作execl
  • 原文地址:https://www.cnblogs.com/fanever/p/10768504.html
Copyright © 2020-2023  润新知