docker 安装redis cluster 模式:3主3从
0. 学习资料来自bilibili,谢谢狂神: https://www.bilibili.com/video/BV1og4y1q7M4?p=38
1. 学完docker 不由得抬头仰天长啸,真尼玛爽!!
2. 下面是脚本
# 1.创建网卡
docker network create redis --subnet 172.38.0.0/16
# 2.通过脚本创建六个redis 配置
for port in $(seq 1 6); \
do \
mkdir -p /mydata/redis/node-${port}/conf
touch /mydata/redis/node-${port}/conf/redis.conf
cat << EOF >/mydata/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
cluster-announce-ip 172.38.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
#3.脚本启动容器
for port in $(seq 1 6); \
do \
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} \
-v /mydata/redis/node-${port}/data:/data \
-v /mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf \
-d --net redis --ip 172.38.0.1${port} redis:6.2.4 redis-server /etc/redis/redis.conf; \
done
# 4. 进入某一个容器内,创建集群: 一主一从
redis-cli --cluster create 172.38.0.11:6379 172.38.0.12:6379 172.38.0.13:6379 172.38.0.14:6379 172.38.0.15:6379 172.38.0.16:6379 --cluster-replicas 1
# 进入容器: 注意是sh 不是 /bin/bash
docker exec -it 626b0278d7fe /bin/sh
# redis 集群命令
redis-cli -c // 进入集群模式
# 验证节点是否开启成功
cluster nodes
效果非常好