VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > PHP >
  • Docker 快速搭建主从 + 哨兵监控

安装 Redis

执行命令

我的官方群点击此处。

docker pull redis

部署方案

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

开始准备工作

 

目录结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
├── 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 配置文件

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

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

  

sentinel_.conf 配置文件

1
2
3
4
5
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 启动脚本文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/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 "正在删除服务:${containerId}"
    docker rm -f ${containerId} > /dev/null
fi
 
# 启动服务
docker run -itd --privileged=true -p "$port":6379 --name redis_"$port" \
-v="$dirPath"/conf/redis_"$port".conf:/etc/redis/redis.conf \
-v="$dirPath"/data_"$port":/data \
redis \
redis-server /etc/redis/redis.conf