有免费做海报的网站吗,网站设网站设计,邯郸网络运营中心电话号码,网页编辑文档最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题#xff0c;我觉得之前写的这篇 《基于Docker的Redis集群搭建》 文章一定是有问题了#xff0c;所以我花了几分钟浏览之前的文章总结了下面几个问题#xff1a;
redis 数量太少#xff0c;只创建了 3 个实例…最近陆陆续续有不少园友加我好友咨询 redis 集群搭建的问题我觉得之前写的这篇 《基于Docker的Redis集群搭建》 文章一定是有问题了所以我花了几分钟浏览之前的文章总结了下面几个问题
redis 数量太少只创建了 3 个实例由于只有 3 个实例所以全部只能是主节点无法体现集群主从关系如何搭建主从集群如何分配从节点
基于之前的文章我想快速的过一下这几个问题本文基于 Docker Redis 5.0.5 版本通过 cluster 方式创建一个 6 个 redis 实例的主从集群当然文章会指出相应的参数说明这样即便是创建 9 个实例的集群方式也是一样的。
1、拉取 Redis 镜像
基于 Redis5.0.5 版本执行如下指令
docker pull redis:5.0.52、创建 6 个 Redis 容器
创建 6 个Redis 容器
redis-node16379redis-node26380redis-node36381redis-node46382redis-node56383redis-node66384
执行命令如下
docker create --name redis-node1 --net host -v /data/redis-data/node1:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-1.conf --port 6379docker create --name redis-node2 --net host -v /data/redis-data/node2:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-2.conf --port 6380docker create --name redis-node3 --net host -v /data/redis-data/node3:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-3.conf --port 6381docker create --name redis-node4 --net host -v /data/redis-data/node4:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-4.conf --port 6382docker create --name redis-node5 --net host -v /data/redis-data/node5:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-5.conf --port 6383docker create --name redis-node6 --net host -v /data/redis-data/node6:/data redis:5.0.5 --cluster-enabled yes --cluster-config-file nodes-node-6.conf --port 6384部分参数解释
–cluster-enabled是否启动集群选值yes 、no–cluster-config-file 配置文件.conf 指定节点信息自动生成–cluster-node-timeout 毫秒值 配置节点连接超时时间–appendonly是否开启持久化选值yes、no
执行命令截图
3、启动 Redis 容器
执行命令如下
docker start redis-node1 redis-node2 redis-node3 redis-node4 redis-node5 redis-node6启动截图如下
4、组建 Redis 集群
进入任意一个 Redis 实例
# 这里以 redis-node1 实例为例
docker exec -it redis-node1 /bin/bash执行组件集群的命令
# 组建集群,10.211.55.4为当前物理机的ip地址
redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 10.211.55.4:6383 10.211.55.4:6384 --cluster-replicas 1执行命令截图如下 创建成功后通过 redis-cli 查看一下集群节点信息
rootCentOS7:/data# redis-cli
127.0.0.1:6379 cluster nodes执行命令截图如下
5、关于Redis集群搭建
我们再回到创建集群的命令上
redis-cli --cluster create 10.211.55.4:6379~6384 --cluster-replicas 1大家着重看这个参数 –cluster-replicas 1参数后面的数字表示的是主从比例比如这里的 1 表示的是主从比例是 1:1什么概念呢
也就是 1 个主节点对应几个从节点现有 6 个实例所以主从分配就是 3 个 master 主节点3 个 slave 从节点。 主节点最少3个3个才能保证集群的健壮性。 如果 –cluster-replicas 2 呢
那么主从比例就是 1:2也就是 1 个主节点对于应 2 个从节点。
即3(master) 6(slave) 9个 Redis 实例。
如果不足 9个 Redis 实例但是参数指定为 2 会怎么样
报错信息如下 提示已经很清楚了Redis集群至少需要3个主节点。那么从节点就需要有6个所以最后说至少需要9个节点。
好的至少3个主节点的要求我不继续刚了但是我想4个主节点2个从节点这总该可以了吧
4个主节点满足你
# 进入一个启动的 reids 实例这里以 redis-node1 实例为例
docker exec -it redis-node1 /bin/bash执行组建集群的命令
redis-cli --cluster create 10.211.55.4:6379 10.211.55.4:6380 10.211.55.4:6381 10.211.55.4:6382 --cluster-replicas 0指定4个没有从节点的主节点这样你就有4个主节点了 剩下的两个从节点怎么办呢手动添加。
怎么添加手动添加 看到这些 master 节点的 id 了吗只需要把 slave 指定给他们就可以了。
继续执行如下命令
redis-cli --cluster add-node 10.211.55.4:6383 10.211.55.4:6379 --cluster-slave --cluster-master-id b0c32b1dae9e7b7f7f4b74354c59bdfcaa46f30aredis-cli --cluster add-node 10.211.55.4:6384 10.211.55.4:6379 --cluster-slave --cluster-master-id 111de8bed5772585cef5280c4b5225ecb15a582e将两个 Redis 实例塞给其他主节点了 最后我们进入 redis-cli通过 cluster nodes 查看一下节点信息 看到这你学废了吗再学不废下期我可要录视频了。。。
博客园https://niceyoo.cnblogs.com/