docker部署redis集群
与单机版本redis将整个数据库放在同一个台服务器上的做法不同,redis集群通过将数据库分散到多个节点来平衡各个节点的负载压力。
手动搭建集群
搭建一个由5个主节点和5个从节点组成的redis集群
创建文件夹及配置文件
- 命令:
mkdir node1 node2 node3 node4 node5 node6 node7 node8 node9 node10
touch redis.conf
- 修改redis.conf
-- 每个端口号根据文件夹设置不同的
cluster-enabled yes
port 20011
- 创建后如图:
- 需要保证每个节点文件夹都有redis.conf文件且端口号不同。
创建redis容器
- 创建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
-
备注
redis集群只能使用使用主机模式,即 –nethost参数。 -
创建后目录截图
-
连接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
- 创建成功截图
- 20011-20015都是主节点,且平均分配了槽
- 创建失败
就会一直停留在:Waiting for the cluster to join…,此时需要检查之前redis容器是否是以主机模式创建的
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了redis集群的搭建。