Docker 快速搭建主从 + 哨兵监控

本文介绍了如何使用Docker快速搭建Redis的主从复制和哨兵监控系统。首先,通过安装Redis并配置主从及哨兵的配置文件,然后通过特定的目录结构和启动脚本来启动各个服务。在遇到启动Sentinel服务时的权限问题时,给出了解决方案。最终成功启动主服务、从服务和Sentinel服务,并展示了手动停止主服务后的自动切换过程。文章还提供了进一步学习的资源链接。
摘要由CSDN通过智能技术生成

安装 Redis

执行命令

我的官方群点击此处

docker pull redis

部署方案

启动三台机器,6379 容器作为主节点,其余作为从节点

开始准备工作

 

目录结构

├── conf
│   ├── redis_6379.conf
│   ├── redis_6380.conf
│   ├── redis_6381.conf
│   ├── sentinel_26379.conf
│   ├── sentinel_26380.conf
│   └── sentinel_26381.conf
├── data_6379
│   ├── appendonly.aof
│   └── dump.rdb
├── data_6380
│   └── dump.rdb
├── data_6381
│   └── dump.rdb
└── scripts
    ├── run.sh
    └── sentinel.sh

redis_.conf 配置文件

下载配置文件,具体配置另行调整即可

https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf

sentinel_.conf 配置文件

port 26379
dir "/etc/redis"
sentinel monitor mymaster 172.17.0.2 6379 1
sentinel down-after-milliseconds mymaster 60000
sentinel failover-timeout mymaster 180000

run.sh 启动脚本文件

#!/usr/bin/env bash
set -e

# 脚本当前目录
cPath=$(cd $(dirname "$0") || exit; pwd)

# 根目录
dirPath=$(dirname "$cPath")

# 获取端口
port="$1"
if [[ ! "$port" ]]; then
  port=6379
fi

# 创建数据目录
mkdir -p "$dirPath"/data_"$port"

# 删除已启动服务
containerId=$(docker ps -a | grep "redis_$port" | awk -F' ' '{print $1}')
if [[ "$containerId" ]]; then
    echo "正在删除服务:${contain
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值