当前位置: 首页 > article >正文

docker compose 搭建reids集群 1主2从架构

要使用 Docker Compose 搭建一个包含 1 个主节点和 2 个从节点的 Redis 集群,并将数据和日志文件挂载到宿主机上,你需要编写一个 docker-compose.yml 文件。这个文件将定义三个 Redis 服务,并配置相应的卷来持久化数据和日志。

下面是一个相应的 docker-compose.yml 文件示例:


version: '3'

services:
  redis-master:
    image: redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis-master/data:/data
      - ./redis-master/logs:/var/log/redis
    command: redis-server --appendonly yes --requirepass Shgbit@2023



  redis-slave-1:
    image: redis
    ports:
      - "6380:6379"
    volumes:
      - ./redis-slave/data:/data
      - ./redis-slave/logs:/var/log/redis
    command: redis-server --slaveof redis-master 6379 --appendonly yes  --requirepass Shgbit@2023 --masterauth Shgbit@2023

  redis-slave-2:
    image: redis
    ports:
      - "6381:6379"
    volumes:
      - ./redis-slave2/data:/data
      - ./redis-slave2/logs:/var/log/redis
    command: redis-server --slaveof redis-master 6379 --appendonly yes   --requirepass Shgbit@2023 --masterauth Shgbit@2023

解释

  • 服务定义:定义了一个名为 redis-master 的主节点服务和两个从节点服务 redis-slave-1redis-slave-2
  • 端口映射:主节点映射了 6379 端口,从节点分别映射了 6380 和 6381 端口,以避免端口冲突。
  • 卷挂载:每个服务都挂载了两个卷,一个用于数据 (/data),另一个用于日志 (/var/log/redis)。这些卷映射到宿主机上的相应目录。
  • 命令:使用 --appendonly yes 开启 AOF 持久化。从节点还配置了 --slaveof 参数指向主节点。

使用指南

  1. 保存此内容为 docker-compose.yml
  2. 确保 ./master-data, ./master-logs, ./slave1-data, ./slave1-logs, ./slave2-data, ./slave2-logs 这些目录在你的宿主机上存在,否则 Docker 将会自动创建它们,但可能会由于权限问题导致 Redis 无法写入数据或日志。
  3. 在包含此 docker-compose.yml 文件的目录下运行 docker-compose up 来启动服务。
  4. 可以通过 docker-compose down 停止并移除服务。

请注意,这个配置主要用于开发和测试目的。对于生产环境,可能需要更复杂的配置,包括网络安全设置、更复杂的持久化策略和高可用性配置。


http://www.kler.cn/a/157176.html

相关文章:

  • 【Three.js基础学习】33.Halftone Shading shaders
  • json字符串或者json文件转换成相应的bean,报错“Unrecognized field xxx , not marked as ignorable”
  • 精选9个自动化任务的Python脚本精选
  • LLM漫谈(八)| OpenAI 12天直播集锦
  • 华为管理变革之道:奋斗文化与活力
  • 【安全编码】Web平台如何设计防止重放攻击
  • 【C语言】递归详解
  • 【powerjob】定时任务调度器 xxl-job和powerjob对比
  • SQL Sever 基础知识 - 数据筛选(2)
  • PCB走线要“尽量”短_笔记
  • 【数据库设计和SQL基础语法】--SQL语言概述--数据类型和约束
  • 基础堆溢出原理与DWORD SHOOT实现
  • MySQL笔记-第04章_运算符
  • Gson 自动生成适配器插件
  • cocos creator-碰撞检测
  • STM32串口接收不定长数据(空闲中断+DMA)
  • 调试GMS应用,报错“此设备未获得play保护机制认证”问题解决
  • 马斯克极简5步工作法 —— 筑梦之路
  • 大数据技术学习笔记(四)—— HDFS
  • Java生成word[doc格式转docx]
  • 【开源】基于JAVA的天然气工程运维系统
  • ffmpeg学习日记619-指令-透明通道视频相关指令
  • Cpp之旅(学习笔记)第9章 标准库
  • Ant Design Pro初始化报错
  • 为什么要做ERP集成?ERP系统如何与其他业务应用程序集成
  • 装箱 Box 数据类型