借助跨区域复制,您可以从主实例创建次要实例,以使实例在不同区域中可用。如果主实例的区域不可用,您可以分离或切换到另一个区域中的次要实例,以处理读取和写入请求。次要实例无需分离或切换到主实例即可处理读取请求。按地理位置分布数据可让数据更靠近您,并缩短读取延迟时间。如果一个区域中的连接速度较慢或过载,您可以将流量路由到另一个区域。
创建次要实例
创建次要实例时,Memorystore for Valkey 会复制主实例的一些设置并将其作为次要实例设置应用。如需了解 详情,请参阅实例设置。
您可以使用 Google Cloud 控制台或 Google Cloud CLI 在 Memorystore for Valkey 中创建次要实例。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。
点击主实例。主实例是您要创建的次要实例的父级。
在侧边栏中,点击次要实例 标签页。
点击添加次要实例 。
在添加次要实例 窗口中,进行以下更改:
在实例 ID 字段中,输入您要创建的次要实例的 ID。ID 必须介于 1 到 63 个字符之间,并且只能使用小写字母、数字或连字符。ID 必须以小写字母开头,以小写字母或数字结尾,并且在其区域中是唯一的。
从区域 菜单中,选择您希望次要实例所在的区域。
在可用区级可用性 部分,选择以下选项之一:
如果您希望实例的所有分片和副本都分布在 Memorystore for Valkey 创建实例的区域的三个可用区中,请选择多可用区 选项。
例如,如果您选择的区域是
us-central1,并且 选择了 多可用区 选项,则 Memorystore for Valkey 会将实例的分片和副本分布在us-central1-a、us-central1-b和
us-central1-c可用区中。 如果发生可用区故障,实例中的节点将故障切换到副本。如果您希望实例的所有分片和副本都位于 Memorystore for Valkey 创建实例的区域的一个可用区中,请选择单可用区 选项,然后从可用区 菜单中选择可用区。
使用单可用区可以降低网络费用。但是,如果发生可用区故障,则不会发生故障切换。
从副本 菜单中,选择实例的副本数量(每个分片)。您可以选择零个、一个或两个副本。
从网络 菜单中,为实例选择网络。如需详细了解 Memorystore for Valkey 的网络,请参阅网络。
点击添加次要实例 。
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 查看次要实例的摘要信息。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。
点击主实例旁边的展开箭头。此实例是您要查看其信息的次要实例的父级。
点击次要实例。系统会显示有关该实例的摘要信息。
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执行切换。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。
点击主实例旁边的展开箭头。此实例是您要切换的次要实例的父级。
点击次要实例。
点击提升为主实例 。
在要将次要实例提升为主实例吗? 对话框中,输入次要实例的 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-1 和 instance-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分离次要实例。
分离次要实例
本部分介绍了如何将次要实例与其主实例分离。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。
点击主实例。这是您要从主实例分离的次要实例的父级。
在侧边栏中,点击次要实例 标签页。
选中您要从主实例分离的次要实例的 ID 旁边的复选框。
点击从主实例分离 。
在要分离次要实例吗? 对话框中,输入次要实例的 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:次要实例所在的区域
分离多个次要实例
本部分介绍了如何将多个次要实例与其主实例分离。您还可以使用本部分中的过程将不可用的次要实例与其主实例分离。
控制台
在 Google Cloud 控制台中,前往 Memorystore for Valkey 页面。
点击主实例。这是您要从主实例分离的次要实例的父级。
在侧边栏中,点击次要实例 标签页。
选中您要从主实例分离的次要实例的 ID 旁边的复选框。
点击从主实例分离 。
在要分离次要实例吗? 对话框中,执行以下操作:
输入次要实例的 ID。使用英文逗号分隔 ID。
点击分离 。
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 会将更改同步到次要实例。
更新次要实例上的设置
您必须更改次要实例上的以下设置:
删除使用跨区域复制的实例
本部分介绍了如何删除使用跨区域复制的主实例和次要实例。
删除主实例
如需删除主实例,请执行以下操作:
为了防止意外删除,您无法同时删除主实例和次要实例。
删除次要实例
如需删除次要实例,请按照删除实例中的说明操作。对于实例 ID,请使用次要实例的 ID。