栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Docker——部署Redis集群

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker——部署Redis集群

docker——部署Redis集群

Redis集群构图

当有主机不可用时,对应从机替代成为主机。

创建redis网络

docker network create redis --subnet 172.38.0.0/16

redis网络创建成功:

查看redis网络的配置信息:

docker network inspect redis

通过脚本编写六个Redis配置文件,用于启动六个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

执行上面的脚本后,查看创建的 redis 配置文件(以第一个redis服务为例):

启动六个 redis 容器服务

启动redis-1容器服务:

docker run -p 6371:6379 -p 16371:16379 --name redis-1 
-v /mydata/redis/node-1/data:/data 
-v /mydata/redis/node-1/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.11 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-2容器服务:

docker run -p 6372:6379 -p 16372:16379 --name redis-2 
-v /mydata/redis/node-2/data:/data 
-v /mydata/redis/node-2/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.12 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-3容器服务:

docker run -p 6373:6379 -p 16373:16379 --name redis-3 
-v /mydata/redis/node-3/data:/data 
-v /mydata/redis/node-3/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.13 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-4容器服务:

docker run -p 6374:6379 -p 16374:16379 --name redis-4 
-v /mydata/redis/node-4/data:/data 
-v /mydata/redis/node-4/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.14 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-5容器服务:

docker run -p 6375:6379 -p 16375:16379 --name redis-5 
-v /mydata/redis/node-5/data:/data 
-v /mydata/redis/node-5/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.15 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动redis-6容器服务:

docker run -p 6376:6379 -p 16376:16379 --name redis-6 
-v /mydata/redis/node-6/data:/data 
-v /mydata/redis/node-6/conf/redis.conf:/etc/redis/redis.conf 
-d --net redis --ip 172.38.0.16 redis:5.0.9-alpine3.11 redis-server /etc/redis/redis.conf

启动成功后,查看上面六个启动的redis容器服务:

进入redis容器,创建集群

进入redis容器,随便进入一个

docker exec -it redis-1 /bin/sh

里面有aof持久化和redis节点的配置文件。

创建集群:

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 --c
luster-replicas 1

查看redis集群信息和节点信息

集群信息:

节点信息:可以看到哪个是主节点哪个是从节点

测试集群的高可用

往redis中设置值:

set name wanli

可以看到这个值设置到redis-2服务中了,并且redis-2是主节点。

停止redis-2容器服务,模拟主节点宕机的情况:

docker stop redis-2

尝试获得刚刚设置的值:

可以看到主机 redis-2宕机后,从它的从机 redis-6 获取到了刚刚设置的值,这样就算主机服务不可用了,从机也能提供服务变成主机,实现了集群的高可用。

再次查看集群中redis节点的信息,看有什么变化:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/679860.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号