Redis安装(单机及各类集群,阿里云) (6)

通过以下指令,构建集群(该指令只适用于5.0+版本):

/developer/redis-5.0.3/src/redis-cli --cluster create 172.26.40.223:6379 172.26.40.224:6379 172.26.40.225:6379 172.26.40.226:6379 172.26.40.227:6379 172.26.40.228:6379 --cluster-replicas 1

简单解释一下这个指令,前半部分就是通过redis-cli调用集群模式(--cluster)下的create指令,将上述6个Redis实例构成集群(通过ip:port定位,所以可以单机部署集群,虽然非常鸡肋就是了)。最后部分,就是通过--cluster-replicas参数设定这个集群每个master都有1个slave实例。这里可以设置多个slave实例,并且slave实例还可以设置自己的slave实例。

成功运行后,可以见到如下页面:

在这里插入图片描述

这时候,直接yes确认即可,如果需要修改,可以后续调整。

确认后,可以看到如下图片:

在这里插入图片描述

这个时候就已经完成了分片集群的搭建。

集群校验

通过以下命令,可以确认redis集群槽点分布的信息:

/developer/redis-5.0.3/src/redis-cli -c -p 6379 cluster nodes

如果看到以下画面,表示槽点分片OK:

在这里插入图片描述

集群测试

为了确认Redis分片集群的功能,我们来做一个简单的测试。

就是进入node2的redis实例(主实例),保存a=1数据。然后看是否可以通过node0(主实例,也可以从实例)来获取a对应的值。

在这里插入图片描述

上述图片中,还通过

CLUSTER KEYSLOT a

来确认key=a的数据所在槽点,确实是node0重导向的15495槽点位。

集群操作

前面已经完成了Redis分片集群的安全与确认,这里简单说一下集群操作,不感兴趣的朋友,可以直接跳过。

槽点整理

由于数据倾斜与访问倾斜问题,新master入集群(新master进入集群时是不会分配槽点的)等问题,可能我们对于原先的槽点分布并不满意,所以需要将一个master实例上的槽点,移动一定数量到另一个master槽点。

可以通过以下指令实现:

/developer/redis-5.0.3/src/redis-cli --cluster reshard 172.26.40.223:6379 --cluster-from 45c1607ecf3d80f08cf6056d53f73a529ffc17de --cluster-to 2e1714431f76910db0e1808ce3a3a9b645d2c38f --cluster-slots 100 --cluster-yes

该指令,将从id为45c1607ecf3d80f08cf6056d53f73a529ffc17de的master实例,划分100个槽点到id为2e1714431f76910db0e1808ce3a3a9b645d2c38f的master实例。

PS:master-id可以通过前面的cluster nodes等指令查看。

可以看到以下画面:

在这里插入图片描述

然后,通过

/developer/redis-5.0.3/src/redis-cli --cluster check 172.26.40.223:6379

检查集群的槽点状态,可以看到以下画面:

在这里插入图片描述

可以明显看到槽点整理的结果。

删除节点

接下来都比较简单,我就简单放上图片了。需要的地方,我会提示一下。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyywxf.html