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命令查看