首页 > 数据库 >Docker Redis Sentinel 高可用集群搭建指南

Docker Redis Sentinel 高可用集群搭建指南

时间:2024-11-11 19:46:07浏览次数:3  
标签:mymaster etc Redis 6379 redis sentinel conf Sentinel Docker

Docker Redis Sentinel 高可用集群搭建指南

前提条件:

  • 已安装 Docker 和 docker-compose。
  • 配置了镜像源加速,确保能够正常拉取镜像。

一、手动搭建 Docker Redis Sentinel

1. 拉取 Redis 镜像

docker pull redis

2. Redis 集群 IP 和端口设置(单机测试)
主节点:ip:6379
从节点:ip:6380, ip:6381
Sentinel 节点:ip:26379, ip:26380, ip:26381
二、部署主从 Redis(3台服务器)
1. 文件配置
主节点及 Sentinel 配置
docker-compose.yml:

```yaml
services:
  redis-master:
    image: redis:7.0.13
    restart: always
    container_name: redis-master
    privileged: true
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf

  redis-sentinel:
    image: redis:7.0.13
    restart: always
    container_name: redis-sentinel
    privileged: true
    ports:
      - '26379:26379'
    volumes:
      - /root/sentinel.conf:/etc/sentinel.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/sentinel.conf --sentinel

volumes:
  redis-data:

redis.conf:

daemonize no
port 6379
protected-mode no
bind 0.0.0.0
requirepass 123456

sentinel.conf:

port 26379
protected-mode no
sentinel monitor mymaster 192.168.91.4 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000

从节点及 Sentinel 配置
docker-compose.yml:

services:
  redis-slave:
    image: redis:7.0.13
    restart: always
    container_name: redis-slave
    privileged: true
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf

  redis-sentinel:
    image: redis:7.0.13
    restart: always
    container_name: redis-sentinel
    privileged: true
    ports:
      - '26379:26379'
    volumes:
      - /root/sentinel.conf:/etc/sentinel.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/sentinel.conf --sentinel

volumes:
  redis-data:
redis.conf:
daemonize no
port 6379
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.91.4 6379

sentinel.conf:

port 26379
protected-mode no
sentinel monitor mymaster 192.168.91.4 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000

从节点02及 Sentinel 配置
docker-compose.yml:

services:
  redis-slave02:
    image: redis:7.0.13
    restart: always
    container_name: redis-slave02
    privileged: true
    ports:
      - '6379:6379'
    volumes:
      - redis-data:/opt/bitnami/redis/data
      - /root/redis.conf:/etc/redis.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/redis.conf

  redis-sentinel:
    image: redis:7.0.13
    restart: always
    container_name: redis-sentinel
    privileged: true
    ports:
      - '26379:26379'
    volumes:
      - /root/sentinel.conf:/etc/sentinel.conf
      - /etc/localtime:/etc/localtime:ro
    command:
      - /bin/sh
      - -c
      - redis-server /etc/sentinel.conf --sentinel

volumes:
  redis-data:

redis.conf:

daemonize no
port 6379
protected-mode no
masterauth 123456
requirepass 123456
slave-read-only yes
bind 0.0.0.0
slaveof 192.168.91.4 6379

sentinel.conf:

port 26379
protected-mode no
sentinel monitor mymaster 192.168.91.4 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 5000
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 3000
  1. 启动集群
    在三台主机上分别执行以下命令启动 Redis 和 Sentinel 容器:
docker compose up -d
  1. 检查 Sentinel 状态
    启动成功后,可以通过以下命令查看 Sentinel 的状态:
docker exec redis-sentinel redis-cli -p 26379 -c info sentinel

标签:mymaster,etc,Redis,6379,redis,sentinel,conf,Sentinel,Docker
From: https://blog.csdn.net/2401_84279412/article/details/143533507

相关文章

  • Docker
    Docker学习记录Docker简介Docker是一个用于构建、运行、传送(build,run,share)应用程序的平台。可以将应用程序和他运行时所需要的各种依赖包,第三方软件,配置文件等打包到一起。以便在任何环境中都可以正确的运行。Docker和虚拟机的区别?虚拟机是通过虚拟化(Hypervisor)的技术实现......
  • docker数据从c盘迁移到d盘
    迁移wsl数据文件到D盘docker安装的镜像、容器等,都放在C:\Users\xxx\AppData\Local\Docker\wsl目录中。请不要在“设置”中修改位置,请使用wsl相关命令迁移到D盘,重要的事情说三遍查看已经安装的的Linux发行版:wsl--list,DockerDesktop通过wsl启动时,会自动创建两......
  • redisson内存泄漏问题排查
    问题描述最近生产有个服务突然出现频繁告警,接口P99响应时间变长,运维同学观察到相应的podcpu飙升,内存占用很高。cpu升高问题排查是老生常谈的话题了,一般可以使用top-ppid-H查看是哪个线程占用cpu高,再结合jstack找到对应的java线程代码。不过经验告诉我们,cpu升高还有另外一......
  • redis高可用方案
            redis高可用(HighAvailability,HA)是指Redis通过一系列技术手段确保在面临故障的情况下也能持续提供服务的能力。        redis作为一个内存数据库,其数据通常存储在内存中,一旦发生故障,可能导致数据丢失或服务中断,所以,为了保证Redis的高可用,它主要......
  • [豪の学习笔记] CI/CD相关 - Docker
    一、docker常见命令单独下载镜像文件dockerpull查看本地镜像文件dockerimages删除本地镜像文件dockerrmi基于dockerfile构建自定义镜像dockerbuild将打包好的镜像保存在本地dockersave加载外部镜像文件dockerload将本地镜像推送到镜像仓库dockerpush创建并......
  • visualvm远程连接Docker容器中部署的java应用并监控
    visualvm远程连接Docker容器中部署的java应用前言jdk1.8中自带了,java11中需要单独下载下载地址visualvm下载地址简介java虚拟机监控,故障排查及性能分析工具。网络配置局域网与docker内网打通,请参考:办公网络与Docker内网网络互通服务于网络服务名称节点IPj......
  • 搭建云网站数据处理的环境——安装docker
    1、打开会话查询docker版本号输入:docker-v得到相关版本号回复:例如:2、在终端中输入命令来查看GPU驱动版本输入:nvidia-smi3、添加或者修改docker配置文件输入:cd/etc/docker再输入:sudovimdaemon.json进入文本修改界面点击按键“i”进行修改,修改内容如下:点击查看代......
  • redis cluster集群部署(docker部署)
    1.集群说明  三台测试机器172.16.4.78、172.16.4.79、172.16.4.80,做三主三从,请提前安装好docker以及docker-compose主从槽位容器名称库连接方式172.16.4.78:26379172.16.4.78:263800-5460redis_26379、redis_26380cluster集群只有0库代理三个主库做轮询172.16.4......
  • XXL-JOB docker 初始化
    一、因为xxl-job使用的是mysq数据库,所有在yaml文件中,需要优先启动mysqlversion:'3'services:mysql:image:mysql:8.0container_name:mysql8restart:alwaysenvironment:MYSQL_ROOT_PASSWORD:123456MYSQL_DATABASE:xxl_jobpo......
  • [CKS] K8S Dockerfile和yaml文件安全检测
    最近准备花一周的时间准备CKS考试,在准备考试中发现有一个题目关于Dockerfile和yaml文件安全检测的题目。​专栏其他文章:[CKS]Create/Read/MountaSecretinK8S-CSDN博客[CKS]AuditLogPolicy-CSDN博客-[CKS]利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS]......