• 使用docker创建redis实例、主从复制、哨兵集群


    单机模式

         

    1 拉取镜像
           docker pull redis:7.2.1

    2 新建redis映射配置文件夹data和conf
       $ mkdir -p /mydata/redis/data
       $ mkdir -p /mydata/redis/conf

    3 切换到redis配置文件映射目录/mydata/redis/conf
       cd /mydata/redis/conf

    4 编辑配置文件
      vim redis.conf

      输入一下内容:
      protected-mode no                ----关闭保护模式,可以远程访问
      appendonly yes                      -----持久化
      requirepass 123456                 -----登录密码

    5 启动redis容器
      docker run --name redis-7.2.1 -p 6379:6379 -v /mydata/redis/data:/data -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server /etc/redis/redis.conf

    主从复制

         1 准备2台虚拟机,ip分别是:192.168.56.102,192.168.56.103

            其中102做master节点,103作为slave节点

         2 102上操作如下:

              a  拉取镜像
                  docker pull redis:7.2.1
              b  新建redis映射配置文件夹data和conf
                  mkdir -p /mydata/redis/data
                  mkdir -p /mydata/redis/conf
              c  切换到redis配置文件映射目录/mydata/redis/conf
                  cd /mydata/redis/conf
              d 编辑配置文件
                 vim redis.conf
                      输入一下内容:
                      protected-mode no                ----关闭保护模式,可以远程访问
                      appendonly yes                      -----持久化
                      requirepass 123456                 -----登录密码
              e 启动redis容器
                      docker run --name redis-master -p 6379:6379 -v /mydata/redis/data:/data -v                 /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server                 /etc/redis/redis.conf

           3  103上操作如下

            a  拉取镜像
                    docker pull redis:7.2.1
            b  新建redis映射配置文件夹data和conf
                    mkdir -p /mydata/redis/data
                    mkdir -p /mydata/redis/conf
            c  切换到redis配置文件映射目录/mydata/redis/conf
                    cd /mydata/redis/conf
            d 编辑配置文件
                    vim redis.conf
                       输入一下内容:
                        protected-mode no                ----关闭保护模式,可以远程访问
                        appendonly yes                      -----持久化
                        requirepass 123456                 -----登录密码
                        replicaof 192.168.56.102 6379   ---同步102数据
                        masterauth 123456                  ---102登录密码
                       replica-read-only yes                ---只读
            e 启动redis容器
                         docker run --name redis-slave -p 6379:6379 -v /mydata/redis/data:/data -v                 /mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis:7.2.1 redis-server                 /etc/redis/redis.conf

            4  再次在102上的redis查看集群信息
               docker exec -it redis-master /bin/bash
               redis-cli 
               auth 123456
               info replication

        看到如下信息,表示主从集群已经搭建好了

    哨兵模式

           在以上主从复制的基础上,完成哨兵模式搭建

    准备三台虚拟机

            192.168.56.102,192.168.56.103,192.168.56.104,其中102做redis主备的 master 103是slave 104做sentinel

    102 上的操作

            同上主从模式搭建,只是在第四步配置redis配置文件时,加入以下:

            masterauth 123456      ------这是因为,当master节点down之后再次重启,会从新的master节点同步数据,需要密码验证

          其他不变

    103 上操作:

            同上主从复制

    104 上操作

            a   拉取镜像
                    docker pull redis:7.2.1

            b  新建redis映射配置文件夹data和conf
                    mkdir -p /mydata/redis/conf

            c 切换到redis配置文件映射目录/mydata/redis/conf
                    cd /mydata/redis/conf

             d 编辑配置文件
                        vim redis.conf

                    输入一下内容:                

    port 26379

     # 设定密码认证
    requirepass 123456

     # 配置哨兵的监控参数
     # 格式:sentinel monitor
    # master-name是为这个被监控的master起的名字
    # ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,
    # redis-port是被监控节点所监听的端口号
    # quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
      sentinel monitor redis_102 192.168.56.102 6379 1            

      # 连接主节点的密码
      # 格式:sentinel auth-pass
      sentinel auth-pass redis_102 123456


      # master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
      # 格式:sentinel down-after-milliseconds
       sentinel down-after-milliseconds redis_102 30000

            e 启动sentinel实例
                    docker run -p 26379:26379 --name sentinel-1 \
                    -v /mydata/redis/sentinel.conf:/etc/redis/sentinel.conf \
                    -d redis:7.2.1 redis-sentinel /etc/redis/sentinel.conf

    验证主从功能和哨兵模式

            在master上设置数据,

             

            在slave上可以看到对应的值

            

               当停掉master节点,在sentinel上日志

                

              当再次重启102节点时

            

            这里在sentinel上检测到102再次上线

    创作不易,如果觉得有用,点赞、收藏、关注!

  • 相关阅读:
    深度剖析 —— 预处理
    gitee提交代码到仓库
    【UNR #6 C】稳健型选手(分治)(主席树)(二分)
    Docker下Jenkins打包java项目并部署
    AutoSAR入门:应用背景及简介
    部署Jenkins服务或者SVN服务。提交操作步骤及截图
    2024.6.13刷题记录
    新华三H3CNE网络工程师认证—路由基础
    Tomcat内存马回显
    数据库系统及应用复习——第七章数据库设计
  • 原文地址:https://blog.csdn.net/qq_39203337/article/details/133702002