原生命令搭建redis cluster 分布式3主3从node
这里演示单机多部署(生产环境多机)首先准备6个节点分别是7000-7005端口redis
先配置7000端口shell
这里说明下cluster相关的配置bash
cluster-enabled表示该节点是否开启cluster模式分布式
cluster-config-file 是生成本地cluster的一个配置文件ui
cluster-require-full-coverage 这个是说,若是集群中有一个节点挂掉,整个集群将不可用 默认yes 这里改为 no,即某节点挂掉,集群依然对外提供服务。spa
接着配置其余节点 (同7000)code
接着启动全部节点ip
这里咱们随便选择一个节点set数据,发现报了个错部署
这里由于咱们未分配槽,集群是不可用的,能够输入cluster info命令看下集群的状态
将节点配置启动后,接下来就要进行节点握手(meet操做)
在节点上执行cluster meet ip port 对集群中某节点进行握手操做
cluster nodes命令列出集群中全部节点发现6个,其中7000是master节点
再执行下cluster info命令观察:
两个节点都发现有6个节点,表名集群中全部节点都已经互通完毕。
分配槽的命令是 cluster addslots 【slot】其中slot参数就是槽节点一次只能分配一个,若是咱们要为7000节点分配0~5000这个范围的槽,要执行5000次命令,所以须要写一个shell脚原本完成分配槽:
start=$1 end=$2 port=$3 for slot in `seq ${start} ${end}` do echo "slot:${slot}" redis-cli -p ${port} cluster addslots ${slot} done
cluster一共有16384个槽(0-16383) 所以为了平均分配到3个节点(7000-7002是主,7003-7005是从),咱们计划16384/3 也就是分别为 0~546一、5462~1092二、三个范围。
接下来咱们执行分配槽脚本:
sh addslots.sh 0 5461 7000
sh addslots.sh 5462 10922 7001
sh addslots.sh 10923 16383 7002
执行cluster nodes和cluster info查看,全部槽已经分配完毕。
这时候咱们set一个值就成功了
配置方式:在选择的从节点上执行 cluster replicate 【nodeId】,nodeId能够经过cluster nodes得到
执行完后看下节点状态,发现主从关系已经有了
输入cluster slots能够看到槽的分配以及主从
至此,原生手动安装方式演示完毕!