Docker学习-Redis集群搭建

173 阅读1分钟

Redis Cluster 三主三从。

下载Images

docker pull redis;  // 下载最新版本镜像
docker inspect images redis; // 查看镜像信息 

最新版本 6.2.6

image.png

创建启动配置文件

创建 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

image.png

生成集群

进入任意一个容器执行命令:

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