Docker实战-部署「Redis集群」

Redis集群思维导图

创建集群

一、创建自定义网络模式

docker network create --driver bridge --subnet 172.28.0.0/16 redis-group

二、Shell脚本快速创建集群

1. 创建配置文件夹并启动容器

# 创建集群配置文件夹
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
# 循环启动 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,并配置集群

# 进入 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
# 查看redis集群概况,加-c 是集群,不加-c是单机
redis-cli -c

测试集群数据写入

测试突发主节点瘫痪

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

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

总结

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

DockerDocker实战redisredis集群
暂无评论

发送评论 编辑评论


				
上一篇
下一篇