Docker实战-部署「Redis集群」

2021-12-24 18:38:57 浏览数 (1)

阅读量: 51

Redis集群思维导图

创建集群

一、创建自定义网络模式

代码语言:javascript复制
docker network create --driver bridge --subnet 172.28.0.0/16 redis-group

二、Shell脚本快速创建集群

1. 创建配置文件夹并启动容器
代码语言:javascript复制
# 创建集群配置文件夹
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.28.0.1${port}
cluster-announce-port 6379
cluster-announce-bus-port 16379
appendonly yes
EOF

done
代码语言:javascript复制
# 循环启动 docker 容器
for port in $(seq 1 6); 
do 

docker run -p 637${port}:6379 -p 1637${port}:16379 --name redis-${port} 
-v /home/docker/redis-group/mydata/redis/node-${port}/data:/data 
-v /home/docker/redis-group/mydata/redis/node-${port}/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis-group --ip 172.28.0.1${port} redis:latest redis-server /etc/redis/redis.conf 

done
2. 集群配置

进入容器redis-1,并配置集群

代码语言:javascript复制
# 进入 redis-1 容器
docker exec -it redis-1 /bin/bash
# 配置集群命令
redis-cli --cluster create 172.28.0.11:6379 172.28.0.12:6379 172.28.0.13:6379 172.28.0.14:6379 172.28.0.15:6379 172.28.0.16:6379
代码语言:javascript复制
# 查看redis集群概况,加-c 是集群,不加-c是单机
redis-cli -c

测试集群数据写入

测试突发主节点瘫痪

代码语言:javascript复制
# 到宿主主机命令行控制台,手动控制 redis-3容器暂停,达到节点瘫痪
docker stop redis-3

此时,redis-4从机,升为主机,代理原来主机的工作任务,由此实现高可用

总结

在未来,使用了虚拟化服务之后,所有技术都会慢慢的变得简单起来!

0 人点赞