本页介绍了如何连接到 Memorystore for Redis Cluster 实例。
客户支持
Memorystore for Redis Cluster 不提供自己的客户端库,但支持支持 Redis 协议的现有第三方客户端库。您可以在 Redis 客户端页面上找到客户端列表示例。
Redis-py 客户端最佳实践
如需使用 redis-py Python 客户端连接到 Memorystore for Redis 集群实例,您必须在声明 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 实例。
查看集群的发现端点
如需查看 Memorystore 集群的发现端点,请按以下说明操作:
控制台
前往 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 集群实例的授权网络的 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 虚拟机上安装
按照在客户端上安装证书授权机构中的说明,在 Linux 虚拟机上安装实例的证书授权机构。
查看集群的发现端点并记下该端点。
运行以下命令,连接到实例的发现端点:
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