因为环境限制,所以考虑用两台虚拟机搭建简单的redis分布式集群
一、服务器规划
服务器IP | 实例 | 端口 |
10.211.55.7 | redis_6391(master),redis_6392(slave) | 6391,6392 |
10.211.55.8 | redis_6391(master),redis_6392(slave),redis_6393(master), redis_6394(slave) |
6391,6392,6393,6394 |
二、准备redis集群的docker-compose文件
2.1、10.211.55.7服务器docker-compose文件
docker-compose-rediscluster01.yml
version: "3.7"
services:
redis-6391:
image: redis:7.0.10 # 基础镜像
container_name: redis-6391 # 容器名称
restart: always
environment: # 环境变量
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
ports: # 映射端口,对外提供服务
- 6391:6391 # redis的服务端口
- 16391:16391 # redis集群监控端口
stdin_open: true # 标准输入打开
tty: true # 后台运行不退出
network_mode: host # 使用host模式
privileged: true # 拥有容器内命令执行的权限
# 映射数据卷,配置目录
volumes: [
"/home/workspaces/redis-cluster/redis-6391/data:/data",
"/home/workspaces/redis-cluster/redis-6391/conf/redis.conf:/etc/redis/redis.conf",
"/home/workspaces/redis-cluster/etc/rc.local:/etc/rc.local",
"/etc/localtime:/etc/localtime" #将Redis服务的时间设置为与宿主机相同(/etc/localtime:/etc/localtime:ro)如果加:ro,表示只读
]
command: [
"redis-server",
"/etc/redis/redis.conf"
]
logging:
options:
max-size: '100m'
max-file: '10'
redis-m6392:
image: redis:7.0.10 # 基础镜像
container_name: redis-6392 # 容器名称
restart: always
environment: # 环境变量
- TZ=Asia/Shanghai
- LANG=en_US.UTF-8
ports: # 映射端口,对外提供服务
- 6392:6392 # redis的服务端口
- 16392:16392 # redis集群监控端口
stdin_open: true # 标准输入打开
tty: true # 后台运行不退出
network_mode: host # 使用host模式