CLUSTER info:打印集群的信息。
CLUSTER nodes:列出集群当前已知的所有节点(node)的相关信息。
CLUSTER meet :将ip和port所指定的节点添加到集群当中。
CLUSTER addslots [slot ...]:将一个或多个槽(slot)指派(assign)给当前节点。
CLUSTER delslots [slot ...]:移除一个或多个槽对当前节点的指派。
CLUSTER slots:列出槽位、节点信息。
CLUSTER slaves :列出指定节点下面的从节点信息。
CLUSTER replicate :将当前节点设置为指定节点的从节点。
CLUSTER saveconfig:手动执行命令保存保存集群的配置文件,集群默认在配置修改的时候会自动保存配置文件。
CLUSTER keyslot :列出key被放置在哪个槽上。
CLUSTER flushslots:移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。
CLUSTER countkeysinslot :返回槽目前包含的键值对数量。
CLUSTER getkeysinslot :返回count个槽中的键。
CLUSTER setslot node 将槽指派给指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽,然后再进行指派。
CLUSTER setslot migrating 将本节点的槽迁移到指定的节点中。
CLUSTER setslot importing 从 node_id 指定的节点中导入槽 slot 到本节点。
CLUSTER setslot stable 取消对槽 slot 的导入(import)或者迁移(migrate)。
CLUSTER failover:手动进行故障转移。
CLUSTER forget :从集群中移除指定的节点,这样就无法完成握手,过期时为60s,60s后两节点又会继续完成握手。
CLUSTER reset [HARD|SOFT]:重置集群信息,soft是清空其他节点的信息,但不修改自己的id,hard还会修改自己的id,不传该参数则使用soft方式。
CLUSTER count-failure-reports :列出某个节点的故障报告的长度。
CLUSTER SET-CONFIG-EPOCH:设置节点epoch,只有在节点加入集群前才能设置。
脚本redis-trib.rb(/usr/local/src/redis-3.2.8/src)
./redis-trib.rb help Usage: redis-trib
#创建集群 create host1:port1 ... hostN:portN --replicas #带上该参数表示是否有从,arg表示从的数量 #检查集群 check host:port #查看集群信息 info host:port #修复集群 fix host:port --timeout #在线迁移slot reshard host:port #个是必传参数,用来从一个节点获取整个集群信息,相当于获取集群信息的入口 --from #需要从哪些源节点上迁移slot,可从多个源节点完成迁移,以逗号隔开,传递的是节点的node id,还可以直接传递--from all,这样源节点就是集群的所有节点,不传递该参数的话,则会在迁移过程中提示用户输入 --to #slot需要迁移的目的节点的node id,目的节点只能填写一个,不传递该参数的话,则会在迁移过程中提示用户输入。 --slots #需要迁移的slot数量,不传递该参数的话,则会在迁移过程中提示用户输入。 --yes #设置该参数,可以在打印执行reshard计划的时候,提示用户输入yes确认后再执行reshard --timeout #设置migrate命令的超时时间。 --pipeline #定义cluster getkeysinslot命令一次取出的key数量,不传的话使用默认值为10。 #平衡集群节点slot数量 rebalance host:port --weight --auto-weights --use-empty-masters --timeout --simulate --pipeline --threshold #将新节点加入集群 add-node new_host:new_port existing_host:existing_port --slave --master-id #从集群中删除节点 del-node host:port node_id #设置集群节点间心跳连接的超时时间 set-timeout host:port milliseconds #在集群全部节点上执行命令 call host:port command arg arg .. arg #将外部redis数据导入集群 import host:port --from --copy --replace #帮助 help (show this help)
For check, fix, reshard, del-node, set-timeout you can specify the host and port of any working node in the cluster.
1)创建集群 cretate :6个节点,每个节点一个从库,这里有个问题是不能指定那个从库属于哪个主库,不过可以先添加3个主库,通过新增节点(add-node)来添加从库到指定主库。
./redis-trib.rb create --replicas 1 192.168.100.134:17021 192.168.100.135:17021 192.168.100.136:17021 192.168.100.134:17022 192.168.100.135:17022 192.168.100.136:17022
2)测试集群 check ip:port:测试集群是否分配完了slot
./redis-trib.rb check 192.168.100.134:17021
3)查看集群信息 info ip:port:查看集群信息:包括slot、slave、和key的数量分布
./redis-trib.rb info 192.168.100.134:17021
4)平衡节点的slot数量 rebalance ip:port:平均各个节点的slot数量
./redis-trib.rb rebalance 192.168.100.134:17021
流程:
5)删除集群节点 del-node ip:port :只能删除没有分配slot的节点,从集群中删出之后直接关闭实例
./redis-trib.rb del-node 192.168.100.135:17022 77d02fef656265c9c421fef425527c510e4cfcb8
流程:
6)添加集群节点 add-node :新节点加入集群,节点可以为master,也可以为某个master节点的slave。
添加一个主节点:134:17022 加入到134:17021的集群当中
./redis-trib.rb add-node 192.168.100.134:17022 192.168.100.134:17021
添加一个从节点:135:17022加入到134:17021的集群当中,并且作为指定的从库
./redis-trib.rb add-node --slave --master-id 7fa64d250b595d8ac21a42477af5ac8c07c35d83 192.168.100.135:17022 192.168.100.134:17021
https://www.cnblogs.com/zhoujinyi/p/6477133.html?utm_source=itdadao&utm_medium=referral
更多内容可学习官网:https://redis.io/topics/cluster-tutorial