docker部署redis集群

本文详细介绍了如何在Docker环境下手动创建一个由5个主节点和5个从节点组成的Redis集群。首先,通过创建不同文件夹和配置文件来设定各节点的端口,然后使用Docker运行容器,并将数据卷挂载到指定路径。接着,确保所有容器以主机模式运行,并分配槽位。最后,通过redis-cli连接所有节点并创建集群,成功实现了负载均衡。注意,创建集群时必须使用主机模式,否则可能导致集群无法正常建立。
摘要由CSDN通过智能技术生成


与单机版本redis将整个数据库放在同一个台服务器上的做法不同,redis集群通过将数据库分散到多个节点来平衡各个节点的负载压力。


手动搭建集群

搭建一个由5个主节点和5个从节点组成的redis集群

创建文件夹及配置文件

  1. 命令:
mkdir node1 node2 node3 node4 node5 node6 node7 node8 node9 node10
touch redis.conf
  1. 修改redis.conf
-- 每个端口号根据文件夹设置不同的
cluster-enabled yes
port 20011
  1. 创建后如图:
    文件夹及配置文件截图
  2. 需要保证每个节点文件夹都有redis.conf文件且端口号不同。

创建redis容器

  1. 创建10个redis容器
docker run -itd --name redis-node-1  --net host -p 20011:20011 -v 【自己服务器路径】/cluster/node1:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-2  --net host -p 20012:20012 -v 【自己服务器路径】/cluster/node2:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-3  --net host -p 20013:20013 -v 【自己服务器路径】/cluster/node3:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-4  --net host -p 20014:20014 -v 【自己服务器路径】/cluster/node4:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-5  --net host -p 20015:20015 -v 【自己服务器路径】/cluster/node5:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-6  --net host -p 20016:20016 -v 【自己服务器路径】/cluster/node6:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-7  --net host -p 20017:20017 -v 【自己服务器路径】/cluster/node7:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-8  --net host -p 20018:20018 -v 【自己服务器路径】/cluster/node8:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-9  --net host -p 20019:20019 -v 【自己服务器路径】/cluster/node9:/data  redis redis-server /data/redis.conf
docker run -itd --name redis-node-10 --net host -p 20020:20020 -v 【自己服务器路径】/cluster/node10:/data redis redis-server /data/redis.conf
  1. 备注
    redis集群只能使用使用主机模式,即 –nethost参数。

  2. 创建后目录截图
    文件夹及配置文件截图

  3. 连接10个节点并分配槽

--172.29.104.42是容器内的ip,可以通过weave scope查看
--输入命令需要根据提示来分配槽,默认输入yes即可
docker run --rm -it goodsmileduck/redis-cli redis-cli -h 172.29.104.42 -p 20011  --cluster-replicas 1 --cluster create 172.29.104.42:20011 172.29.104.42:20012 172.29.104.42:20013 172.29.104.42:20014 172.29.104.42:20015 172.29.104.42:20016 172.29.104.42:20017 172.29.104.42:20018 172.29.104.42:20019 172.29.104.42:20020
  1. 创建成功截图
    连接集群成功截图
  • 20011-20015都是主节点,且平均分配了槽
  1. 创建失败
    就会一直停留在:Waiting for the cluster to join…,此时需要检查之前redis容器是否是以主机模式创建的

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了redis集群的搭建。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值