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

news/2024/6/3 18:50:58 标签: 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> <ip> <redis-port> <quorum>
# master-name是为这个被监控的master起的名字
# ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,
# redis-port是被监控节点所监听的端口号
# quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了
  sentinel monitor redis_102 192.168.56.102 6379 1            

  # 连接主节点的密码
  # 格式:sentinel auth-pass <master-name> <password>
  sentinel auth-pass redis_102 123456


  # master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒
  # 格式:sentinel down-after-milliseconds <master-name> <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再次上线

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


http://www.niftyadmin.cn/n/5077120.html

相关文章

Android攻城狮学鸿蒙-配置

1、config.json配置 鸿蒙中的config.json应该类似于Android开发中Manifest.xml&#xff0c;可以进行页面的配置。根据顺序&#xff0c;会识别启动应用的时候&#xff0c;要打开哪个界面。 2、 Ability详解&#xff0c;以及与Android的Activity对比。 他人的学习文章连接&…

1600*C. k-Tree(DP)

Problem - 431C - Codeforces 解析&#xff1a; #include<bits/stdc.h> using namespace std; #define int long long const int mod1e97,N110; int n,k,d,dp[N][2]; signed main(){scanf("%lld%lld%lld",&n,&k,&d);dp[0][0]1;for(int i1;i<n;…

【转】ubuntu 安装 OpenCv 4.6脚本 installOCV.sh

摘自 https://github.com/opencv/opencv/issues/22132 好东西&#xff0c;收一下。 installOCV.sh#! /bin/bash VER4.6.0 PYTHON_VERSION3.8 CORES2 echo "Script for installing the OpenCV $VER on Ubuntu 18.04 LTS" echo "Updating the OS..." sudo …

learning to rank、三元组损失、排序

待阅读&#xff1a; 一文理解Ranking Loss/Margin Loss/Triplet Loss - 知乎

2023年中国汽车后市场行业研究报告

第一章 行业概况 1.1 定义 汽车后市场行业在中国的快速崛起&#xff0c;反映了汽车产业链的完善和消费者需求的多样化。这个行业涵盖了汽车销售后&#xff0c;围绕汽车使用过程中涌现的各类服务和交易活动。它不仅为消费者提供了汽车使用过程中所需的全方位服务&#xff0c;也…

C++中的类、结构体、指针和引用

C中的类、结构体、指针和引用 习惯上&#xff1a;只有数据的&#xff0c;函数比较少的&#xff0c;和数据相关的定义为结构体&#xff0c;把一些比较复杂的&#xff0c;比较抽象的&#xff0c;含义比较混乱的&#xff0c;比较麻烦的&#xff0c;代码比较长的&#xff0c;打包成…

2023年中国涂料助剂市场发展历程及趋势分析:中高端助剂市场规模将会迎来新的增长[图]

涂料助剂又称油漆辅料&#xff0c;系配制涂料的辅助材料&#xff0c;能改进涂料性能&#xff0c;促进涂膜形成。种类很多&#xff0c;包括催干剂、增韧剂、乳化剂、增稠剂、颜料分散剂、消泡剂、流平剂、抗结皮剂、消光剂、光稳定剂、防霉剂、抗静电剂等&#xff0c;其中用量最…

SSM整合RabbitMQ,Spring4.x整合RabbitMQ

SSM整合RabbitMQ目录 前言版本实现目录参考pom.xml依赖rabbitmq.properties配置文件spring-rabbitmq.xmlspring-mvc.xml或applicationContext.xmlrabbitmq目录下MessageConsumer.javaMessageConsumer2.javaMessageProducer.javaMessageConstant.java 测试调用 扩展消息重发 前言…