使用跨区域复制

借助跨区域复制,您可以从主实例创建次要实例,以使实例在不同区域中可用。如果主实例的区域不可用,您可以分离或切换到另一个区域中的次要实例,以处理读取和写入请求。次要实例无需分离或切换到主实例即可处理读取请求。按地理位置分布数据可让数据更靠近您,并缩短读取延迟时间。如果一个区域中的连接速度较慢或过载,您可以将流量路由到另一个区域。

创建次要实例

创建次要实例时,Memorystore for Valkey 会复制主实例的一些设置并将其作为次要实例设置应用。如需了解 详情,请参阅实例设置

您可以使用 Google Cloud 控制台或 Google Cloud CLI 在 Memorystore for Valkey 中创建次要实例。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。

    Memorystore for Valkey

  2. 点击主实例。主实例是您要创建的次要实例的父级。

  3. 在侧边栏中,点击次要实例 标签页。

  4. 点击添加次要实例

  5. 添加次要实例 窗口中,进行以下更改:

    1. 实例 ID 字段中,输入您要创建的次要实例的 ID。ID 必须介于 1 到 63 个字符之间,并且只能使用小写字母、数字或连字符。ID 必须以小写字母开头,以小写字母或数字结尾,并且在其区域中是唯一的。

    2. 区域 菜单中,选择您希望次要实例所在的区域。

    3. 可用区级可用性 部分,选择以下选项之一:

      • 如果您希望实例的所有分片和副本都分布在 Memorystore for Valkey 创建实例的区域的三个可用区中,请选择多可用区 选项。

        例如,如果您选择的区域是 us-central1,并且 选择了 多可用区 选项,则 Memorystore for Valkey 会将实例的分片和副本分布在 us-central1-aus-central1-b
        us-central1-c 可用区中。 如果发生可用区故障,实例中的节点将故障切换到副本。

      • 如果您希望实例的所有分片和副本都位于 Memorystore for Valkey 创建实例的区域的一个可用区中,请选择单可用区 选项,然后从可用区 菜单中选择可用区。

        使用单可用区可以降低网络费用。但是,如果发生可用区故障,则不会发生故障切换。

    4. 副本 菜单中,选择实例的副本数量(每个分片)。您可以选择零个、一个或两个副本。

    5. 网络 菜单中,为实例选择网络。如需详细了解 Memorystore for Valkey 的网络,请参阅网络

  6. 点击添加次要实例

gcloud

如需创建次要实例,请使用 gcloud memorystore instances create 命令。

gcloud memorystore instances create INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=NETWORK,projectId=PROJECT_ID \
--primary-instance=PRIMARY_INSTANCE_PATH

进行以下替换:

  • INSTANCE_ID:您要创建的次要实例的 ID。ID 必须介于 1 到 63 个字符之间,并且只能使用小写字母、数字或连字符。ID 必须以小写字母开头,以小写字母或数字结尾,并且在其区域中是唯一的。
  • PROJECT_ID:您要在其中创建 次要实例的项目的 ID。这是您的主实例所在的项目。
  • REGION_ID:您希望次要 实例所在的区域的 ID。
  • NETWORK:用于创建实例的网络。它必须使用以下格式:projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID。网络 ID 必须与 服务连接政策使用的网络 ID 相符。 否则,您无法创建次要实例。
  • PRIMARY_INSTANCE_PATH:主实例的路径。例如:projects/my-project/locations/us-central1/instances/my-primary-instance。 您可以选择项目中的任何实例作为主实例,只要它不是次要实例即可。

例如:

gcloud memorystore instances create my-secondary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-role=secondary \
--psc-auto-connections=network=projects/my-project/global/networks/default,projectId=my-project \
--primary-instance=projects/my-project/locations/us-central1/instances/my-primary-instance

查看次要实例

您可以使用 Google Cloud 控制台或 Google Cloud CLI 查看次要实例的摘要信息。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。

    Memorystore for Valkey

  2. 点击主实例旁边的展开箭头。此实例是您要查看其信息的次要实例的父级。

  3. 点击次要实例。系统会显示有关该实例的摘要信息。

gcloud

如需查看次要实例的相关信息,包括列出复制组中的主实例和次要实例的成员资格字段 ,请使用 gcloud memorystore instances describe 命令。

gcloud memorystore instances describe INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID

进行以下替换:

  • INSTANCE_ID:次要实例的 ID
  • PROJECT_ID:包含次要 实例的项目的 ID
  • REGION_ID:次要实例所在的区域的 ID

执行切换

借助切换,您可以将次要实例提升为主实例,从而反转主实例和次要实例的角色,以实现灾难恢复。如需了解详情,请参阅跨区域复制简介

您可以使用 Google Cloud 控制台或 Google Cloud CLI执行切换。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。

    Memorystore for Valkey

  2. 点击主实例旁边的展开箭头。此实例是您要切换的次要实例的父级。

  3. 点击次要实例。

  4. 点击提升为主实例

  5. 要将次要实例提升为主实例吗? 对话框中,输入次要实例的 ID,然后点击提升

切换完成后,您必须将应用重新连接到新的主实例。

gcloud

如需执行切换,请使用 gcloud memorystore instances update 命令。

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCE_PATH]

进行以下替换:

  • INSTANCE_ID:您要通过执行切换来 提升为主实例的次要实例的 ID。
  • PROJECT_ID:包含次要 实例的项目的 ID。
  • REGION_ID:次要实例所在的区域的 ID。
  • SECONDARY_INSTANCE_PATH:次要 实例的路径。例如:projects/my-project/locations/us-central1/instances/my-secondary-instance

    如果您有多个次要实例,请用英文逗号分隔每个实例。例如:[instance=projects/my-project/locations/us-central1/instances/my-first-secondary-instance,instance=projects/my-project/locations/europe-west1/instances/my-second-secondary-instance]

假设您有以下实例,这些实例包含在 my-project 项目中:

  • instance-1:此主实例位于 us-east1 区域中。
  • instance-2:此次要实例位于 asia-east1 区域中。
  • instance-3:此次要实例位于 southamerica-east1 区域中。

您想要反转 instance-1instance-2 的角色,以便 instance-2 成为新的主实例,而 instance-1 成为次要实例。

如需执行此操作,请使用以下代码:

gcloud memorystore instances update instance-2 \
--project=my-project \
--location=asia-east1 \
--clear-primary-instance \
--cross-instance-replication-config-role=primary \
--cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-east1/instances/instance-1,instance=projects/my-project/locations/southamerica-east1/instances/instance-3]

切换完成后,您必须将应用重新连接到新的主实例。

分离次要实例

将一个或多个次要实例与其主实例分离后,这些次要实例将成为功能齐全的独立实例,允许读取和写入。 如需了解详情,请参阅如何管理跨区域复制

您可以使用 Google Cloud 控制台或 Google Cloud CLI分离次要实例。

分离次要实例

本部分介绍了如何将次要实例与其主实例分离。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。

    Memorystore for Valkey

  2. 点击主实例。这是您要从主实例分离的次要实例的父级。

  3. 在侧边栏中,点击次要实例 标签页。

  4. 选中您要从主实例分离的次要实例的 ID 旁边的复选框。

  5. 点击从主实例分离

  6. 要分离次要实例吗? 对话框中,输入次要实例的 ID,然后点击分离

gcloud

如需分离次要实例,请使用 gcloud memorystore instances update 命令。

gcloud memorystore instances update INSTANCE_ID \
--project=PROJECT_ID \
--location=REGION_ID \
--cross-instance-replication-config-role=none \
--clear-primary-instance

替换以下内容:

  • INSTANCE_ID:您要 分离的次要实例的 ID
  • PROJECT_ID:包含次要 实例的项目的 ID
  • REGION_ID:次要实例所在的区域

分离多个次要实例

本部分介绍了如何将多个次要实例与其主实例分离。您还可以使用本部分中的过程将不可用的次要实例与其主实例分离。

控制台

  1. 在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。

    Memorystore for Valkey

  2. 点击主实例。这是您要从主实例分离的次要实例的父级。

  3. 在侧边栏中,点击次要实例 标签页。

  4. 选中您要从主实例分离的次要实例的 ID 旁边的复选框。

  5. 点击从主实例分离

  6. 要分离次要实例吗? 对话框中,执行以下操作:

    1. 输入次要实例的 ID。使用英文逗号分隔 ID。

    2. 点击分离

gcloud

如需分离多个次要实例,请使用 gcloud memorystore instances update 命令。

gcloud memorystore instances update PRIMARY_INSTANCE_ID \
--project=PROJECT_ID \
--location=PRIMARY_INSTANCE_REGION_ID \
--remove-cross-instance-replication-config-secondary-instances=[instance=SECONDARY_INSTANCES] \
--cross-instance-replication-config-role=none

进行以下替换:

  • PRIMARY_INSTANCE_ID:主实例的 ID。
  • PROJECT_ID:包含次要 实例的项目的 ID。
  • PRIMARY_INSTANCE_REGION_ID:主实例所在的区域的 ID。
  • SECONDARY_INSTANCES:您要 分离的次要实例。使用英文逗号分隔实例 ID。每个次要实例都必须采用以下格式:projects/PROJECT_ID/locations/SECONDARY_INSTANCE_REGION_ID/instances/INSTANCE_ID

例如:

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--remove-cross-instance-replication-config-secondary-instances=[instance=projects/my-project/locations/us-west4/instances/my-secondary-instance-1,instance=projects/my-project/locations/asia-southeast2/instances/my-secondary-instance-2] \
--cross-instance-replication-config-role=none

您还可以通过 指定不想分离的实例列表,从主实例分离次要实例。Memorystore for Valkey 会分离您未包含在此列表中的任何实例。

假设您有以下次要实例:

  • instance-1:此实例位于 us-east1 区域中。
  • instance-2:此实例位于 asia-east1 区域中。

您想要从 my-primary-instance 分离这两个次要实例。此主实例位于 us-central1 区域中,并且包含在 my-project 项目中。

如需分离次要实例,请使用以下代码:

gcloud memorystore instances update my-primary-instance \
--project=my-project \
--location=us-central1 \
--cross-instance-replication-config-secondary-instances=[]
--cross-instance-replication-config-role=none

在此示例中,由于 null [] 值分配给了 --cross-instance-replication-config-secondary-instances 参数,因此 Memorystore for Valkey 会从主实例分离所有次要实例。

更新实例设置

本部分提供了用于更新实例设置的链接。更新实例设置的过程有所不同,具体取决于您是在主实例还是次要实例上更改设置。如需详细了解如何更新设置,请参阅实例设置

更新主实例上的设置

您必须更改主实例上的以下设置。更改后,Memorystore for Valkey 会将更改同步到次要实例。

更新次要实例上的设置

您必须更改次要实例上的以下设置:

删除使用跨区域复制的实例

本部分介绍了如何删除使用跨区域复制的主实例和次要实例。

删除主实例

如需删除主实例,请执行以下操作:

  1. 分离删除 所有次要实例。
  2. 如需删除主实例,请按照删除实例中的说明操作。

为了防止意外删除,您无法同时删除主实例和次要实例。

删除次要实例

如需删除次要实例,请按照删除实例中的说明操作。对于实例 ID,请使用次要实例的 ID。