13.1. 集群管理工具

Redisson集群管理工具提供了通过程序化的方式,像redis-trib.rb脚本一样方便地管理Redis集群的工具。

13.1.1 创建集群

以下范例展示了如何创建三主三从的Redis集群。

  1. ClusterNodes clusterNodes = ClusterNodes.create()
  2. .master("127.0.0.1:7000").withSlaves("127.0.0.1:7001", "127.0.0.1:7002")
  3. .master("127.0.0.1:7003").withSlaves("127.0.0.1:7004")
  4. .master("127.0.0.1:7005");
  5. ClusterManagementTool.createCluster(clusterNodes);

主节点127.0.0.1:7000的从节点有127.0.0.1:7001127.0.0.1:7002

主节点127.0.0.1:7003的从节点是127.0.0.1:7004

主节点127.0.0.1:7005没有从节点。

13.1.2 踢出节点

以下范例展示了如何将一个节点踢出集群。

  1. ClusterManagementTool.removeNode("127.0.0.1:7000", "127.0.0.1:7002");
  2. // 或
  3. redisson.getClusterNodesGroup().removeNode("127.0.0.1:7002");

将从节点127.0.0.1:7002从其主节点127.0.0.1:7000里踢出。

13.1.3 数据槽迁移

以下范例展示了如何将数据槽在集群的主节点之间迁移。

  1. ClusterManagementTool.moveSlots("127.0.0.1:7000", "127.0.0.1:7002", 23, 419, 4712, 8490);
  2. // 或
  3. redisson.getClusterNodesGroup().moveSlots("127.0.0.1:7000", "127.0.0.1:7002", 23, 419, 4712, 8490);

将番号为2341947128490的数据槽从127.0.0.1:7002节点迁移至127.0.0.1:7000节点。

以下范例展示了如何将一个范围的数据槽在集群的主节点之间迁移。

  1. ClusterManagementTool.moveSlotsRange("127.0.0.1:7000", "127.0.0.1:7002", 51, 9811);
  2. // 或
  3. redisson.getClusterNodesGroup().moveSlotsRange("127.0.0.1:7000", "127.0.0.1:7002", 51, 9811);

将番号范围在[51, 9811](含)之间的数据槽从127.0.0.1:7002节点移动到127.0.0.1:7000节点。

13.1.4 添加从节点

以下范例展示了如何向集群中添加从节点。

  1. ClusterManagementTool.addSlaveNode("127.0.0.1:7000", "127.0.0.1:7003");
  2. // 或
  3. redisson.getClusterNodesGroup().addSlaveNode("127.0.0.1:7003");

127.0.0.1:7003作为从节点添加至127.0.0.1:7000所在的集群里。

13.2.5 添加主节点

以下范例展示了如何向集群中添加主节点。

  1. ClusterManagementTool.addMasterNode("127.0.0.1:7000", "127.0.0.1:7004");
  2. // 或
  3. redisson.getClusterNodesGroup().addMasterNode("127.0.0.1:7004");

127.0.0.1:7004作为主节点添加至127.0.0.1:7000所在的集群里。 Adds master node 127.0.0.1:7004 to cluster where 127.0.0.1:7000 participate in

该功能仅限于Redisson PRO版本。