1.进入redis安装目录下的utils中



2.编辑create-cluster脚本
读readme可以查看用法。

3.启动集群中的6个redis实例。
端口号分别是30001、30002.。。。。。30006.

4. 各master领取槽位,并给master设置slave。

5.测试
如果用普通的客户端方式连接:redis-cli -p 30001,set k1,此时会报错,告诉我们,要去30003的redis去创建k1(因为k1被计算后分在了12706槽位)。
如果用集群的方式连接客户端:redis-cli -c -p 30001,set k1 sdfsdf,此时集群计算后得知应该在30003这台redis上创建,它会自动 redirect 到30003,并将k1 存储在30003这台redis上。

同理,存取其他值,也是根据计算得到的槽位自己路由到不同的reids上执行。

6.事务

7.带标签的key 开启事务
对于带有同一标签的key会被计算位于同一槽位,从而存储在同一redis实例中,不会来回跳转,此时可以开启事务,执行事务。

8.停止集群,清理集群

9.命令的方式启动集群,做到真正的分布式集群。
上面通过脚本启动集群的方式只能在单机上启动多个实例,并不能真正做到分布式。通过命令的方式可以指定ip、port,真正的创建集群


10.查看帮助

11.数据倾斜时重新移动。

从30001这台机器上移动2000个槽位到指定Id对应的机器上,可以指定要移动的数据源头,指定完后输入 ‘done’ 代表输入结束。此处只知道从30001上移动2000个槽位,但是具体移动哪些槽位,我们并不知道,由redis自动执行的。

12.检查移动数据后的结果
可以看出,此时这三台机器上的槽位数已经是移动后的了。

除此之外,还可以通过check命令查看


1259

被折叠的 条评论
为什么被折叠?



