云计算百科
云计算领域专业知识百科平台

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

 一、环境及版本说明

如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装:

        1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看

        2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看

说明:假设每台服务器已经安装好了Docker软件,并且redis集群的安装目录在/home/redis下面

环境及版本

操作系统IP操作系统版本docker版本redis版本
Linux 192.168.100.101 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.102 CentOS7.6(1810) 18.09.9 6.0.8
Linux 192.168.100.103 CentOS7.6(1810) 18.09.9 6.0.8

二、哨兵模式的优缺点

优点‌:

  • ‌自动故障转移‌:主节点故障时自动选举新主节点
  • ‌高可用性‌:服务连续性保障更强
  • ‌监控告警‌:实时监测节点状态并通知
  • ‌缺点‌:

  • ‌配置复杂‌:需额外部署哨兵节点
  • ‌写扩展性差‌:仍存在主节点写瓶颈
  • ‌数据分片不支持‌:无法突破单节点内存限制
  • ‌适用场景‌:

    • 对自动容灾有要求的业务(如电商核心服务)
    • 需要7×24小时稳定运行的系统

    三、基于一主两从模式搭建三台服务器均添加哨兵

    说明:哨兵模式实际上是redis主从模式的高可用的实现,因此,必须先搭建主从架构(至少1主1从),哨兵才能监控主从节点状态并执行故障转移。哨兵节点本身不存储数据,仅负责监控和协调。

    重要:如果当前你还没有搭建redis的1主2从模式,那么请先看我的这篇文章:

    使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式 https://blog.csdn.net/langmeng110/article/details/148521426?spm=1011.2415.3001.5331

    四、配置文件

     说明:三台服务器都需要配置,路径是:/home/redis/sentinel.conf

    #sentinel.conf配置文件内容
    port 26379
    daemonize yes
    sentinel monitor mymaster 192.168.100.101 6379 2
    sentinel down-after-milliseconds mymaster 5000
    sentinel failover-timeout mymaster 180000
    # 哨兵访问主节点的密码
    sentinel auth-pass mymaster 123456
    # 哨兵自身管理密码
    requirepass 123456

     五、创建启动脚本create_redis_sentinel.sh或编辑create_redis_master.sh

    #create_redis_sentinel.sh脚本内容
    docker run -d –restart=always –name redis-master \\
    -p 6379:6379 -p 26379:26379 –privileged=true \\
    -v /home/redis/sentinel.conf:/sentinel.conf \\
    -v /home/redis/master.conf:/redis.conf \\
    -v /home/redis/data:/data \\
    redis:6.0.8 redis-server /redis.conf

    其中,-v /home/redis/sentinel.conf:/sentinel.conf 是先将哨兵配置文件映射到容器内

    -p 26379:26379 是哨兵模式启动时,所需的端口。

    六、启动

    1. 执行如下脚本,以启动主节点:

    #执行创建脚本
    sh create_redis_sentinel.sh

    #然后查看容器状态
    docker ps

    出现如下图所示内容,表示启动成功:

    2. 进入主节点容器中, 并启动哨兵命令:

    #进入容器
    docker exec -it redis-master /bin/bash
    #启动哨兵命令
    redis-sentinel /sentinel.conf

    启动后,是没有任何输出的

     如果想检验是否启动成功,输入如下命令查看:

    #在redis-master容器中执行如下命令
    redis-cli -p 26379 -a 123456

    #输入如下命令查看哨兵状态
    info sentinel

    输入命令后,将会如下图所示:

     七、创建从节点哨兵

    以102节点为例,103与102的操作是完全一样的,这里就不在赘述

    1. 创建启动脚本create_redis_sentinel.sh或编辑create_redis_slave.sh

    #create_redis_sentinel.sh脚本内容
    docker run -d –restart=always –name redis-slave \\
    -p 6379:6379 -p 26379:26379 –privileged=true \\
    -v /home/redis/sentinel.conf:/sentinel.conf \\
    -v /home/redis/slave.conf:/redis.conf \\
    -v /home/redis/data:/data \\
    redis:6.0.8 redis-server /redis.conf

    2. 执行如下脚本,以启动102从节点:

    #执行创建脚本
    sh create_redis_sentinel.sh

    #然后查看容器状态
    docker ps

    出现如下图所示内容,表示启动成功:

    3. 进入102从节点容器中, 并启动哨兵命令:

    #进入容器
    docker exec -it redis-slave /bin/bash
    #启动哨兵命令
    redis-sentinel /sentinel.conf

    启动后,是没有任何输出的

     如果想检验是否启动成功,输入如下命令查看:

    #在redis-master容器中执行如下命令
    redis-cli -p 26379 -a 123456

    #输入如下命令查看哨兵状态
    info sentinel

    输入命令后,将会如下图所示:

    4. 将103从节点按照上述步骤,再操作一次,即可。

    八、验证哨兵模式是否正常 

    1. 关闭101主节点

    2.10秒后,再次查看102从节点的状态

    如图所示,主节点已经从101服务器,变成了102服务器。

    3. 恢复101主节点的程序

     4. 重新启动哨兵模式(这一步很重要,容器重新启动的时候,哨兵是不会自动启动的,需要手动启动

    5. 进入哨兵命令行

    6. 查看哨兵状态

     如上图所示,主节点依旧是102服务器,101服务器变成了从节点。

    到此,哨兵模式的搭建就完成了,喜欢的朋友点个关注再走吧~~

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!