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

基于DockerCompose搭建Redis主从哨兵模式

linux目录结构

内网配置

哨兵配置文件如下,创建3个哨兵配置文件

# sentinel26379.conf  sentinel26380.conf  sentinel26381.conf 内容如下
protected-mode no
sentinel monitor mymaster redis-master 6379 2
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000
sentinel parallel-syncs mymaster 1

docker-compose.yaml


version: '3'

services:
  redis-master:
    image: redis:4.0.8
    container_name: redis-master
    ports:
      - "6379:6379"
    volumes:
      - redis-master-data:/data
    command: ["redis-server", "--appendonly", "yes"]

  redis-slave1:
    image: redis:4.0.8
    container_name: redis-slave1
    ports:
      - "6380:6379"
    volumes:
      - redis-slave1-data:/data
    command: ["redis-server", "--slaveof", "redis-master", "6379", "--appendonly", "yes"]
    depends_on:
      - redis-master

  redis-slave2:
    image: redis:4.0.8
    container_name: redis-slave2
    ports:
      - "6381:6379"
    volumes:
      - redis-slave2-data:/data
    command: ["redis-server", "--slaveof", "redis-master", "6379", "--appendonly", "yes"]
    depends_on:
      - redis-master
  redis-sentinel-1:
    image: redis:4.0.8
    container_name: redis-sentinel-1
    ports:
      - "26379:26379"
    volumes:
      - ./sentinel26379.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
  redis-sentinel-2:
    image: redis:4.0.8
    container_name: redis-sentinel-2
    ports:
      - "26380:26379"
    volumes:
      - ./sentinel26380.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
  redis-sentinel-3:
    image: redis:4.0.8
    container_name: redis-sentinel-3
    ports:
      - "26381:26379"
    volumes:
      - ./sentinel26381.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2

volumes:
  redis-master-data:
  redis-slave1-data:
  redis-slave2-data:

host版本

version: '3'

services:
  redis-master:
    image: redis:4.0.8
    container_name: redis-master
    network_mode: host
    ports:
      - "17000:17000"
    volumes:
      - redis-master-data:/data
    command: ["redis-server", "--appendonly", "yes","--port","17000"]

  redis-slave1:
    image: redis:4.0.8
    container_name: redis-slave1
    network_mode: host
    ports:
      - "17001:17001"
    volumes:
      - redis-slave1-data:/data
    command: ["redis-server", "--slaveof", "192.168.0.203", "17000", "--appendonly", "yes","--port","17001"]
    depends_on:
      - redis-master

  redis-slave2:
    image: redis:4.0.8
    container_name: redis-slave2
    network_mode: host
    ports:
      - "17002:17002"
    volumes:
      - redis-slave2-data:/data
    command: ["redis-server", "--slaveof", "192.168.0.203", "17000", "--appendonly", "yes","--port","17002"]
    depends_on:
      - redis-master
  redis-sentinel-1:
    image: redis:4.0.8
    container_name: redis-sentinel-1
    network_mode: host
    ports:
      - "16000:16000"
    volumes:
      - ./sentinel16000.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
  redis-sentinel-2:
    image: redis:4.0.8
    container_name: redis-sentinel-2
    network_mode: host
    ports:
      - "16001:16001"
    volumes:
      - ./sentinel16001.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2
  redis-sentinel-3:
    image: redis:4.0.8
    container_name: redis-sentinel-3
    network_mode: host
    ports:
      - "16002:16002"
    volumes:
      - ./sentinel16002.conf:/usr/local/etc/redis/sentinel.conf
    command: ["redis-sentinel", "/usr/local/etc/redis/sentinel.conf"]
    depends_on:
      - redis-master
      - redis-slave1
      - redis-slave2

volumes:
  redis-master-data:
  redis-slave1-data:
  redis-slave2-data:

protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16000
dir "/data"
############################################################
protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16001
dir "/data"
############################################################
protected-mode no
sentinel myid d1ccb49b4c07533de9e7357402dcb79e2f4a4458
sentinel monitor mymaster 192.168.0.203 17000 2
sentinel down-after-milliseconds mymaster 60000
sentinel config-epoch mymaster 0
# Generated by CONFIG REWRITE
port 16002
dir "/data"


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

相关文章:

  • 系列5:基于Centos-8.6 Kubernetes master节点允许运行pod节点
  • Anaconda安装(2024最新版)
  • 短视频矩阵:构建多平台曝光的高效运营网络
  • Gitlab 数据备份全攻略:命令、方法与注意事项
  • 【数值特性库】入口文件
  • 博世智驾新动力:Apache DolphinScheduler如何征服数据处理挑战
  • 视频智能分析平台LiteAIServer未戴安全帽检测算法助力矿山安全:精准监督矿工佩戴安全帽情况
  • FFmpeg库之ffplay
  • VSCode 搭建Python编程环境 2024新版图文安装教程(Python环境搭建+VSCode安装+运行测试+背景图设置)
  • 如何删除Pycharm中无效的Python Interpreter
  • huggingface NLP -Transformers库
  • Flink执行模式(批和流)如何选择
  • EfficientNet模型Pytorch版本具体实现
  • 电脑突然连接不上网络,网络能连接但是频繁掉线,怎么处理
  • Spring发布-订阅模式:解耦与异步通信的高效实现
  • 【尚硅谷 - SSM+SpringBoot+SpringSecurity框架整合项目 】作业已完成
  • 面试题整理8----buffers与cached的区别
  • 第二十三天 神经网络构建-多层感知机(MLP)
  • 基于Spring Boot的新能源汽车个性化推荐系统
  • 深度学习-75-大语言模型LLM之基于llama.cpp和Transformers与Qwen(通义千问)因果语言模型交互