2台机器 10.30.97.200;10.30.97.220 centos7系统 含有已安装docker
- 编写redis配置文件
1.1. 创建目录及文件
分别在2台机器上执行下操作:
mkdir -p /usr/local/docker-redis/redis-cluster
cd /usr/local/docker-redis/redis-cluster
vim redis-cluster.tmpl
1.2. 编写配置文件
10.30.97.200 机器的redis-cluster.tmpl文件内容如下:
port ${PORT}
requirepass 1234
masterauth 1234
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 10.30.97.200
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
10.30.97.220机器的redis-cluster.tmpl文件内容如下:
port ${PORT}
requirepass 1234
masterauth 1234
protected-mode no
daemonize no
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
cluster-announce-ip 10.30.97.220
cluster-announce-port ${PORT}
cluster-announce-bus-port 1${PORT}
在10.30.97.200 机器的 redis-cluster目录下执行以下命令:
for port in `seq 6371 6373`;do \
mkdir -p ${port}/conf \
&& PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data;\
done
在10.30.97.220 机器的 redis-cluster目录下执行以下命令:
for port in `seq 6374 6376`;do \
mkdir -p ${port}/conf \
&& PORT=${port} envsubst < redis-cluster.tmpl > ${port}/conf/redis.conf \
&& mkdir -p ${port}/data;\
done
- 编写docker compose模板文件
在10.30.97.200的机器的 /usr/local/docker-redis/redis-cluster 目录下创建 docker-compose.yml文件并编辑
version: "3.8"
services:
redis-6371: #服务名称
image: redis
container_name: redis-6371
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6371/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6371/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
redis-6372: #服务名称
image: redis
container_name: redis-6372
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6372/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6372/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
redis-6373: #服务名称
image: redis
container_name: redis-6373
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6373/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6373/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
在10.30.97.220机器上的 /usr/local/docker-redis/redis-cluster 目录下创建 docker-compose.yml文件并编辑
version: "3.8"
services:
redis-6374: #服务名称
image: redis
container_name: redis-6374
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6374/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6374/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
redis-6375: #服务名称
image: redis
container_name: redis-6375
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6375/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6375/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
redis-6376: #服务名称
image: redis
container_name: redis-6376
restart: always
network_mode: "host"
volumes:
- /usr/local/docker-redis/redis-cluster/6376/conf/redis.conf:/usr/local/etc/redis/redis.conf
- /usr/local/docker-redis/redis-cluster/6376/data:/data
command: redis-server /usr/local/etc/redis/redis.conf
- 分别在两台机器上执行docker-compose.yml文件
docker-compose up -d
- 创建redis cluster集群
随便进入一个容器节点,并进入 /usr/local/bin/ 目录:
docker exec -it redis-6371 bash
cd /usr/local/bin/
接下来我们就可以通过以下命令实现redis cluster集群的创建
redis-cli -a 1234 --cluster create 10.30.97.200:6371 10.30.97.200:6372 10.30.97.200:6373 10.30.97.220:6374 10.30.97.220:6375 10.30.97.220:6376 --cluster-replicas 1