Redis Cluster 三主三从。
下载Images
docker pull redis; // 下载最新版本镜像
docker inspect images redis; // 查看镜像信息
最新版本 6.2.6
创建启动配置文件
创建 shell 脚本,使用脚本快速配置 6个配置。
在/usr/local/fishbone/redis 目录下 按照节点 生成6个文件,并初始化基础配置信息。
#!/bin/bash
for port in $(seq 1 6);
do
mkdir -p /usr/local/fishbone/redis/node-${port}/conf
touch /usr/local/fishbone/redis/node-{port}/conf/redis.conf
cat << EOF >/usr/local/fishbone/redis/node-${port}/conf/redis.conf
port 6379
bind 0.0.0.0
cluster-enabled yes
cluster-config-file node.conf
cluster-node-timeout 5000
cluster-announce-ip 172.12.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF
done
注册执行脚本
chmod 777 redisConfig.sh; // 注册
./redisConfig.sh; // 执行
参数解析:
cluster-enabled yes: 开启集群功能
cluster-node-timeout:集群节点的超时时限
cluster-announce-ip: 集群节点IP
cluster-announce-port: 集群节点映射端口
cluster-announce-bus-port: 集群节点总线端口
启动容器
#!/bin/bash
for port in $(seq 1 6);
do
docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port}
-v /usr/local/fishbone/redis/node-${port}/data:/data
-v /usr/local/fishbone/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf
-d --net redis --ip 172.12.0.1${port} redis redis-server /etc/redis/redis.conf
done
生成集群
进入任意一个容器执行命令:
docker exec -it redis1 sh;
redis-cli --cluster create 172.12.0.11 6379 172.12.0.12 6379 172.12.0.13 6379 172.12.0.14 6379 172.12.0.15 6379 172.12.0.16 6379 --cluster-replicas 1