上一篇我们已经了解了,redis分片集群的搭建逻辑,方法是什么样的:以散列插槽的方式。
接下来,让我们来学习redis集群的更多功能吧!
集群伸缩
redis-cli中提供了很多关于集群的命令键入下面命令即可看到:
redis-cli --cluster help
上面两个命令是添加 / 删除节点的。
演示一下:
添加之前先看看集群的状态是怎样的:
redis-cli -p 8001 cluster nodes
随便创建一个新节点(记得给权限),redis.conf:
port 9004
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file /tmp/nodes.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录
dir /tmp/
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize no
# 注册的实例ip
replica-announce-ip 192.168.157.130
# 保护模式
protected-mode no
# 数据库数量
databases 1
# 日志
logfile /tmp/run.log
容器创建好了,接下来就是往集群中添加节点了:
redis-cli --cluster add-node 192.168.157.130:9004 192.168.157.130:8001 --cluster-slave
往节点8001中添加从节点。
添加成功!
删除9001节点:
redis-cli --cluster del-node 192.168.157.130:9004 fc76070971af24ae1d94b24fa306f522e16f97d4
往集群中添加主节点并分配hash slot:
redis-cli --cluster add-node 192.168.157.130:9004 192.168.157.130:8001 --cluster-master-id d663041e04713ac1b640dfc55ce3c893765824ce
输入命令:
redis-cli --cluster reshard 192.168.157.130:9004
将会显示下面的内容:
会询问你需要移动多少个插槽,这里我们输入1000,即要移动1000个。
输入要接收插槽的节点id:我们从上面可以找到9004节点的id,输入。
接着就是输入源节点的id,即要分配插槽出去的节点的id:
输入完后,回车,再输入done。
输入yes。
9004节点占据了0-999个插槽,分配插槽成功!