本页介绍了如何连接到 Memorystore for Redis Cluster 实例。
客户支持
Memorystore for Redis Cluster 不提供自己的客户端库,但支持支持 Redis 协议的现有第三方客户端库。如需详细了解 Redis 支持的客户端库,请参阅支持的连接客户端。
redis-py 客户端最佳实践
如需使用 redis-py Python 客户端连接到 Memorystore for Redis Cluster 实例,您必须在声明 Redis 集群时添加 skip_full_coverage_check=True:
from rediscluster import RedisCluster
endpoints = [{"host": "IPADDRESS", "port": "6379"}]
rdb = RedisCluster(
startup_nodes=endpoints,
skip_full_coverage_check=True, # Required for Memorystore
decode_responses = True)
print(rdb.set('PYTHON', 'CLUSTER'))
print(rdb.get('PYTHON'))
print(rdb.unlink('PYTHON'))
将端口列入防火墙许可名单
如果您未在防火墙上将正确的端口列入许可名单,您的实例可能会遇到连接错误。如需详细了解如何将端口列入许可名单,请参阅问题排查。
跨区域访问
您可以从位于与 Memorystore 实例不同区域的客户端访问 Memorystore for Redis Cluster 实例。
查看集群的发现端点
每个集群都有一个发现端点,客户端会连接到该端点。此端点是 IP 地址和端口号的组合。
您可以使用 Google Cloud 控制台或 gcloud CLI 查看 Memorystore for Redis Cluster 中集群的发现端点。
控制台
前往 Google Cloud 控制台中的 Memorystore for Redis Cluster 页面。
点击您的集群 ID。
在连接到此实例部分,记下发现端点旁边的 IP 地址和端口号。这两个值共同构成了集群的发现端点。
gcloud
如需查看集群的发现端点,请按照查看实例详情部分中的说明运行 describe gcloud CLI。
输出应类似如下所示:
authorizationMode: AUTH_MODE_DISABLED
createTime: '2023-08-04T17:49:07.988918793Z'
discoveryEndpoints:
- address: 10.142.0.13
port: 6379
pscConfig:
- network: projects/my-project-364018/global/networks/default
name: projects/my-project-364018/locations/us-east1/clusters/my-cluster-1
pscConnections:
- address: 10.142.0.13
forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/forwardingRules/sca-auto-fr-5bc46f69-ec80-4c5a-8971-ce267a4d8ddd
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
pscConnectionId: '25734306048376845'
- address: 10.142.0.10
forwardingRule: https://www.googleapis.com/compute/v1/projects/my-project-364018/regions/us-east1/.
forwardingRules/sca-auto-fr-817b64c5-85ac-48d0-82e3-c6fa99b4e67d
network: projects/my-project-364018/global/networks/default
projectId: my-project-364018
pscConnectionId: '25734306048376842'
replicaCount: 0
shardCount: 3
sizeGb: 39
state: ACTIVE
tier: PERFORMANCE
transitEncryptionMode: TRANSIT_ENCRYPTION_MODE_DISABLED
uid: cddda5de-d91f-449b-8755-3a665430271a
记下 discovery_endpoints: 部分中列出的端点地址和端口号。这两个值共同构成了集群的发现端点。
使用 redis-cli 从 Compute Engine 虚拟机连接
您可以从任何使用 Memorystore 实例的授权网络的 Compute Engine 虚拟机连接到 Memorystore for Redis Cluster 实例。
如需连接到实例,请执行以下操作:
如果您还没有使用 Memorystore for Redis Cluster 实例的授权网络的 Linux Compute Engine 虚拟机,请创建一个虚拟机并按照 Linux 虚拟机创建快速入门中的说明连接到该虚拟机。
按照在 Linux 上安装 Redis 中的说明,在 Compute Engine 虚拟机上安装
redis-cli版本 6.0 或更高版本。查看集群的发现端点并记下该端点。
运行以下命令,连接到实例的发现端点:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
其中:
- DISCOVERY_ENDPOINT_ADDRESS 和 PORT_NUMBER 是您在上一步中记下的值。
运行
CLUSTER SHARDS命令以查看集群拓扑。记下其中一个节点的 IP 地址和端口号。运行以下命令,连接到所需节点:
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
替换以下内容:
- NODE_IP_ADDRESS 是您在上一步中找到的节点的 IP 地址。
- NODE_PORT 是您在上一步中找到的节点的端口号。
连接到节点后,输入一些 Redis 命令:
请输入:
PING
结果:
PONG
输入
SET HELLO WORLD
结果:
OK
请输入:
GET HELLO
结果:
"WORLD"
完成与 Redis 节点的连接测试后,您应该考虑删除用于连接到 Redis 实例的 Compute Engine 虚拟机。这样做有助于避免系统向您的 Cloud Billing 账号收取费用。
连接到启用了传输加密的实例
本部分举例说明如何连接到启用了传输加密的 Memorystore for Redis Cluster 实例。
如果您还没有与上一步的 Redis 实例使用同一授权网络的 Compute Engine 虚拟机,请创建一个虚拟机并按照 Linux 虚拟机使用快速入门中的说明连接到该虚拟机。
- 按照在 Linux 上安装 Redis 中的说明,在 Compute Engine 虚拟机上安装
redis-cli版本 6.0 或更高版本。
- 按照在 Linux 上安装 Redis 中的说明,在 Compute Engine 虚拟机上安装
检查您为集群使用的证书授权机构 (CA) 模式。
如果 CA 模式为单实例,请按照在客户端上安装 CA 证书中的说明安装集群的 CA 证书。
如果 CA 模式为共享,请按照在客户端上安装 CA 证书集合中的说明安装集群的 CA 证书集合。
如果 CA 模式为客户管理的,则您的应用可以直接连接到集群,无需下载和安装其他 CA 证书。因此,您可以跳过此步骤。
查看集群的发现端点并记下该端点。
运行以下命令,连接到实例的发现端点:
redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c --tls --cacert /tmp/server_ca.pem
其中:
- DISCOVERY_ENDPOINT_ADDRESS 和 PORT_NUMBER 是您在上一步中记下的值。
运行
CLUSTER SHARDS命令以查看集群拓扑。记下其中一个节点的 IP 地址和端口号。运行以下命令,连接到所需节点:
redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c --tls --cacert /tmp/server_ca.pem
替换以下内容:
- NODE_IP_ADDRESS 是您在上一步中找到的节点的 IP 地址。
- NODE_PORT 是您在上一步中找到的节点的端口号。
连接到节点后,输入一些 Redis 命令:
请输入:
PING
结果:
PONG