连接到 Memorystore for Valkey 实例

本页面介绍了如何连接到 Memorystore for Valkey 实例。

客户端支持

如需查看有关使用哪些连接客户端的示例和指南,请参阅 客户端库代码示例。

允许防火墙上的端口

如果您未在防火墙上允许正确的端口,则实例可能会遇到连接错误,因为防火墙可能会屏蔽 Memorystore for Valkey 使用的端口。

对于实例的所有 Private Service Connect 端点,您必须允许 TCP 端口 6379 以及 TCP 端口 11000 到 13047。如需了解更多 信息,请参阅问题排查。

跨区域访问

您可以从位于与实例所在区域不同的区域的客户端访问 Memorystore for Valkey 实例。

连接到已启用集群模式的实例

本部分介绍了如何连接到 Memorystore for Valkey 已启用集群模式的实例。

查看实例的发现端点

每个已启用集群模式的实例都有一个发现端点,您的客户端会连接到该端点。 此端点是 IP 地址和端口号的组合。

您可以使用 控制台 Google Cloud 或 gcloud CLI查看 Memorystore for Valkey 实例的发现端点。

gcloud

如需查看实例的发现端点,请按照查看实例信息中的说明运行 describe gcloud CLI。

输出应类似如下所示:

authorizationMode: AUTH_DISABLED
createTime: '2024-08-06T22:02:55.224704101Z'
deletionProtectionEnabled: false
engineVersion: VALKEY_7_2
name: projects/myproject/locations/us-central1/instances/my-instance
nodeConfig:
  sizeGb: 6.5
nodeType: STANDARD_SMALL
persistenceConfig:
  mode: DISABLED
endpoints:
- connections:
  - pscAutoConnection:
       connectionType: CONNECTION_TYPE_DISCOVERY
       forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/forwardingRules/sca-auto-fr-ec00907a-3ee3-4740-8092-ae832428f8e4
       ipAddress: 10.128.0.58
       network: projects/my-project/global/networks/default
       port: 6379
       projectId: my-project
       pscConnectionId: '38876592440606778'
       serviceAttachment: projects/129109085717/regions/us-east1/serviceAttachments/gcp-memorystore-auto-58e78f71-fdb7-48-psc-sa
    - pscAutoConnection:
       forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/forwardingRules/sca-auto-fr-5ce5518f-1c59-4b46-aa74-799fad70d7b1
       ipAddress: 10.128.0.59
       network: projects/my-project/global/networks/default
       port: 6379
       projectId: my-project
       pscConnectionId: '38876592440606779'
       serviceAttachment: projects/129109085717/regions/us-east1/serviceAttachments/gcp-memorystore-auto-58e78f71-fdb7-48-psc-sa-2
replicaCount: 2
shardCount: 5
state: ACTIVE
transitEncryptionMode: TRANSIT_ENCRYPTION_DISABLED
uid: 869f2d09-d20b-46d8-94ba-be83c48ceb54
updateTime: '2024-08-06T22:18:59.389980051Z'
zoneDistributionConfig:
  mode: MULTI_ZONE

记下 endpoints: 部分中 connectionType: CONNECTION_TYPE_DISCOVERY 条目下列出的端点地址和端口号。这两个值一起使用就是实例的发现端点。

使用 valkey-cli 从 Compute Engine 虚拟机连接

您可以从使用 Memorystore 实例的授权网络的任何 Compute Engine 虚拟机连接到 Memorystore for Valkey 实例。

如需连接到实例,请执行以下操作:

  1. 如果您还没有使用 Memorystore for Valkey 实例的 授权网络的 Linux Compute Engine 虚拟机,请创建一个虚拟机并 按照创建 Linux 虚拟机快速入门中的说明连接到该虚拟机。

  2. 按照 安装 Valkey 中的说明,在 Compute Engine 虚拟机上 安装 valkey-cli。

  3. 查看实例的发现端点 并记下该端点。

  4. 运行以下命令,连接到实例的发现端点:

    valkey-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    其中:

    • DISCOVERY_ENDPOINT_ADDRESS 和 PORT_NUMBER 是您在上一步中记下的值。
  5. 运行 CLUSTER SHARDS 命令以查看节点拓扑。记下其中一个节点的 IP 地址和端口号。

  6. 运行以下命令,连接到所需的节点:

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    替换以下内容:

    • NODE_IP_ADDRESS 是您在 上一步中找到的节点的 IP 地址。
    • NODE_PORT 是您在上一步中找到的节点的端口号。
  7. 连接到节点后,输入一些 Valkey 命令:

    请输入:

    PING
    

    结果:

    PONG
    

    输入

    SET HELLO WORLD
    

    结果:

    OK
    

    请输入:

    GET HELLO
    

    结果:

    "WORLD"
    
  8. 完成对 Valkey 节点的连接测试后,您应考虑删除用于连接到 Valkey 实例的 Compute Engine 虚拟机。这样做有助于避免 Cloud Billing 帐号产生费用。

连接到已启用传输加密的实例

本部分提供了一个示例,说明如何连接到已启用传输加密的 Memorystore for Valkey 已启用集群模式的实例。

  1. 如果您还没有使用与上一步中的 Valkey 实例相同的 授权网络的 Compute Engine 虚拟机,请创建一个虚拟机 并按照 Linux 虚拟机使用快速入门中的说明连接到该虚拟机。

    1. 按照安装 Valkey 中的说明,在 Compute Engine 虚拟机 上安装 valkey-cli 6.0 版或更高版本。
  2. 按照在 客户端上安装 CA 证书 中的说明,在 Linux 虚拟机上安装实例的证书授权机构 (CA) 证书。

  3. 查看实例的发现端点 并记下该端点的 IP 地址和端口号。

  4. 运行以下命令,连接到实例的发现端点:

    valkey-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem
    

    替换以下内容:

    • DISCOVERY_ENDPOINT_ADDRESS:您在上一步中记下的发现端点的 IP 地址
    • PORT_NUMBER:您在上一步中记下的端口号

    如需启用 valkey-cli 支持模式,请使用 -c 开关。如果您未提供此开关,当您尝试从与您连接到的分片不同的分片访问密钥时,实例会返回 MOVED 错误。 但是,如果您使用该开关,客户端会自动重新连接到错误响应中提供的地址。

    如果您在实例上启用了 Identity and Access Management (IAM) 身份验证或基于基本令牌的身份验证,则必须提供身份验证凭据以及传输层安全协议 (TLS) 标志。例如:

    valkey-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem --user USERNAME -a TOKEN
    

    替换以下内容:

    • USERNAME:实例的用户名
    • TOKEN:身份验证令牌

    如需详细了解如何生成或管理身份验证 凭据,请参阅 管理 IAM 身份验证 和 使用基于基本令牌的身份验证安全访问实例。

  5. 运行 CLUSTER SHARDS 命令以查看节点拓扑。记下其中一个节点的 IP 地址和端口号。

  6. 运行以下命令,连接到节点:

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls --cacert /tmp/server_ca.pem
    

    替换以下内容:

    • NODE_IP_ADDRESS:您在 上一步中记下的节点的 IP 地址。
    • NODE_PORT:您在上一步中记下的节点的端口号。

    如果您的集群使用 IAM 或基于基本令牌的身份验证,请确保您包含 --user 和 -a 标志,就像在发现端点步骤中所做的那样。

  7. 连接到节点后,输入以下 Valkey 命令:

    请输入:

    PING
    

    结果:

    PONG
    

连接到已停用集群模式的实例

本部分介绍了如何连接到 Memorystore for Valkey 已停用集群模式的实例。

查看实例的主端点和读取器端点

如需查看实例的 主端点和读取器端点,请按照以下 说明操作:

gcloud

如需查看实例的主端点和读取器端点,请按照查看实例信息中的说明运行 describe gcloud CLI。

输出应类似如下所示:

authorizationMode: AUTH_DISABLED
createTime: '2024-08-06T22:02:55.224704101Z'
deletionProtectionEnabled: false
engineVersion: VALKEY_7_2
name: projects/myproject/locations/us-central1/instances/my-instance
nodeConfig:
  sizeGb: 6.5
nodeType: STANDARD_SMALL
persistenceConfig:
  mode: DISABLED
endpoints:
- connections:
  - pscAutoConnection:
      connectionType: CONNECTION_TYPE_PRIMARY
      forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/forwardingRules/sca-auto-fr-ec00907a-3ee3-4740-8092-ae832428f8e4
      ipAddress: 10.128.0.124
      network: projects/my-project/global/networks/default
      port: 6379
      projectId: my-project
      pscConnectionId: '38876592440606778'
      serviceAttachment: projects/448055306617/regions/us-central1/serviceAttachments/gcp-memorystore-auto-b3c43536-4a77-40-psc-sa
  - pscAutoConnection:
      connectionType: CONNECTION_TYPE_READER
      forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project/regions/us-central1/forwardingRules/sca-auto-fr-5ce5518f-1c59-4b46-aa74-799fad70d7b1
      ipAddress: 10.128.0.125
      network: projects/my-project/global/networks/default
      port: 6379
      projectId: my-project
      pscConnectionId: '38876592440606779'
      serviceAttachment: projects/448055306617/regions/us-central1/serviceAttachments/gcp-memorystore-auto-b3c43536-4a77-40-psc-sa-2
replicaCount: 2
shardCount: 1
mode: CLUSTER_DISABLED
state: ACTIVE
transitEncryptionMode: TRANSIT_ENCRYPTION_DISABLED
uid: 869f2d09-d20b-46d8-94ba-be83c48ceb54
updateTime: '2024-08-06T22:18:59.389980051Z'
zoneDistributionConfig:
  mode: MULTI_ZONE

主端点: 记下 endpoints: 部分中 CONNECTION_TYPE_PRIMARY 下列出的端点地址和端口号。这两个值一起使用就是实例的主端点。

读取器端点: 记下 endpoints: 部分中 CONNECTION_TYPE_READER 下列出的端点地址和端口号。这两个值一起使用就是实例的读取器端点。

使用 valkey-cli 从 Compute Engine 虚拟机连接

您可以从使用 Memorystore 实例的授权网络的任何 Compute Engine 虚拟机连接到 Memorystore for Valkey 实例。

如需连接到实例,请执行以下操作:

  1. 如果您还没有使用 Memorystore for Valkey 实例的 授权网络的 Linux Compute Engine 虚拟机,请创建一个虚拟机并 按照创建 Linux 虚拟机快速入门中的说明连接到该虚拟机。

  2. 按照 安装 Valkey 中的说明,在 Compute Engine 虚拟机上 安装 valkey-cli。

  3. 查看实例的主端点和读取器端点 并记下该端点。

  4. 运行以下命令,连接到实例的主端点:

    valkey-cli -h PRIMARY_ENDPOINT_ADDRESS -p PORT_NUMBER
    

    其中:

    • PRIMARY_ENDPOINT_ADDRESS 和 PORT_NUMBER 是您在上一步中记下的值。
  5. 连接到主节点后,输入以下 Valkey 命令:

    请输入:

    PING
    

    结果:

    PONG
    

    输入

    SET HELLO WORLD
    

    结果:

    OK
    

    请输入:

    GET HELLO
    

    结果:

    "WORLD"
    
  6. 运行以下命令,连接到实例的读取器端点:

    valkey-cli -h READER_ENDPOINT_ADDRESS -p PORT_NUMBER
    

    其中:

    • READER_ENDPOINT_ADDRESS 和 PORT_NUMBER 是您在上一步中记下的值。
  7. 连接到主节点后,输入以下 Valkey Get 命令:

    请输入:

    PING
    

    结果:

    PONG
    

    请输入:

    GET HELLO
    

    结果:

    "WORLD"
    
  8. 测试与 Valkey 节点的连接后,您应删除用于连接到 Valkey 实例的 Compute Engine 虚拟机。这样做有助于避免 Cloud Billing 帐号产生费用。

连接到已启用传输加密的实例

本部分提供了一个示例,说明如何连接到已启用传输加密的 Memorystore for Valkey 已停用集群模式的实例。

  1. 如果您还没有使用与上一步中的 Valkey 实例相同的 授权网络的 Compute Engine 虚拟机,请创建一个虚拟机 并按照 Linux 虚拟机使用快速入门中的说明连接到该虚拟机。

    1. 按照安装 Valkey 中的说明,在 Compute Engine 虚拟机 上安装 valkey-cli 6.0 版或更高版本。
  2. 检查您为 实例使用的证书授权机构 (CA) 模式。

  3. 查看实例的主端点和读取器端点 并记下每个端点的 IP 地址和端口号。

  4. 运行以下命令,连接到实例的主端点:

    valkey-cli -h PRIMARY_ENDPOINT_ADDRESS -p PORT_NUMBER --tls --cacert /tmp/server_ca.pem
    

    替换以下内容:

    • PRIMARY_ENDPOINT_ADDRESS:您在上一步中记下的主端点的 IP 地址
    • PORT_NUMBER:您在 上一步中记下的此端点的端口号
  5. 运行以下命令,连接到实例的读取器端点:

    valkey-cli -h READER_ENDPOINT_ADDRESS -p PORT_NUMBER --tls --cacert /tmp/server_ca.pem
    

    替换以下内容:

    • READER_ENDPOINT_ADDRESS:您记下的读取器端点的 IP 地址
    • PORT_NUMBER:您记下的此端点的端口号

    如果您在实例上启用了 IAM 身份验证或基于基本令牌的身份验证,则必须提供身份验证凭据以及主端点和读取器端点的 TLS 标志。

    例如:

    valkey-cli -h PRIMARY_ENDPOINT_ADDRESS -p PORT_NUMBER --tls --cacert /tmp/server_ca.pem --user USERNAME -a TOKEN
    

    和

    valkey-cli -h READER_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem --user USERNAME -a TOKEN
    

    替换以下内容:

    • USERNAME:实例的用户名
    • TOKEN:身份验证令牌

    如需详细了解如何生成或管理身份验证 凭据,请参阅 管理 IAM 身份验证 和 使用基于基本令牌的身份验证安全访问实例。

  6. 连接到节点后,输入一些 Valkey 命令:

    请输入:

    PING
    

    结果:

    PONG