本页介绍了如何连接到 Memorystore for Redis Cluster 实例。
客户端支持
Memorystore for Redis Cluster 不提供自己的客户端库,而是支持支持 Redis 协议的现有第三方客户端库。 如需详细了解 Redis 支持的客户端库,请参阅 支持的连接客户端。
Redis-py 客户端最佳实践
如需使用 redis-py Python 客户端连接到 Memorystore for Redis Cluster 实例,您必须在声明 Redis
Cluster 时添加 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 地址和端口号的组合。
您可以使用 控制台或 gcloud CLI 查看 Memorystore for Redis Cluster 中集群的发现端点。 Google Cloud
控制台
在 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-cli6.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-cli6.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