redis cluster安装及配置

原生命令搭建redis cluster 分布式3主3从

1.准备节点

这里演示单机多部署(生产环境多机)首先准备6个节点分别是7000-7005端口

先配置7000端口

这里说明下cluster相关的配置

cluster-enabled表示该节点是否开启cluster模式

cluster-config-file 是生成本地cluster的一个配置文件

cluster-require-full-coverage 这个是说,如果集群中有一个节点挂掉,整个集群将不可用 默认yes 这里改成 no,即某节点挂掉,集群依然对外提供服务。

接着配置其他节点 (同7000)

接着启动所有节点

这里我们随便选择一个节点set数据,发现报了个错

这里因为我们未分配槽,集群是不可用的,可以输入cluster info命令看下集群的状态

2.节点握手

将节点配置启动后,接下来就要进行节点握手(meet操作)

在节点上执行cluster meet ip port 对集群中某节点进行握手操作

cluster nodes命令列出集群中所有节点发现6个,其中7000是master节点

再执行下cluster info命令观察:

两个节点都发现有6个节点,表名集群中所有节点都已经互通完毕。

3.分配槽

分配槽的命令是 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~5461、5462~10922、三个范围。

接下来我们执行分配槽脚本:

sh addslots.sh 0 5461 7000
sh addslots.sh 5462 10922 7001
sh addslots.sh 10923 16383 7002

执行cluster nodes和cluster info查看,所有槽已经分配完毕。

这时候我们set一个值就成功了

4.配置主从

配置方式:在选择的从节点上执行 cluster replicate 【nodeId】,nodeId可以通过cluster nodes获得

执行完后看下节点状态,发现主从关系已经有了

输入cluster slots可以看到槽的分配以及主从

至此,原生手动安装方式演示完毕!

猜你喜欢

转载自my.oschina.net/u/3371837/blog/1795011