連線至 Memorystore for Redis Cluster 執行個體

本頁說明如何連線至 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 執行個體。

查看叢集的探索端點

如要查看 Memorystore 叢集的探索端點,請按照下列說明操作:

控制台

  1. 前往 Google Cloud 控制台的「Memorystore for Redis Cluster」頁面。

    Memorystore for Redis Cluster

  2. 按一下叢集 ID。

  3. 在「Connect to this instance」(連線至這個執行個體) 區段中,記下「Discovery Endpoint」(探索端點) 旁的 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 VM 連線

您可以從使用 Memorystore 執行個體授權網路的任何 Compute Engine VM,連線至 Memorystore for Redis Cluster 執行個體。

如要連線至執行個體,請按照下列步驟操作:

  1. 如果沒有使用 Memorystore for Redis Cluster 執行個體授權網路的 Linux Compute Engine VM,請按照「快速入門導覽課程:建立 Linux VM」建立並連線至 VM。

  2. 按照「在 Linux 上安裝 Redis」一文中的操作說明,在 Compute Engine VM 上安裝 redis-cli 6.0 以上版本。

  3. 查看叢集的探索端點,並記下該端點。

  4. 執行下列指令,連線至執行個體的探索端點:

    redis-cli -h DISCOVERY_ENDPOINT_ADDRESS -p PORT_NUMBER -c
    

    其中:

    • DISCOVERY_ENDPOINT_ADDRESSPORT_NUMBER 是您在上一步記下的值。
  5. 執行 CLUSTER SHARDS 指令,查看叢集拓撲。記下其中一個節點的 IP 位址和通訊埠號碼。

  6. 執行下列指令,連線至所需節點:

    redis-cli -h NODE_IP_ADDRESS -p NODE_PORT -c
    

    更改下列內容:

    • NODE_IP_ADDRESS 是您在上一個步驟中找到的節點 IP 位址。
    • NODE_PORT 是您在上一個步驟中找到的節點埠號。
  7. 連線至節點後,輸入一些 Redis 指令:

    輸入:

    PING
    

    結果:

    PONG
    

    Enter 鍵

    SET HELLO WORLD
    

    結果:

    OK
    

    輸入:

    GET HELLO
    

    結果:

    "WORLD"
    
  8. 測試與 Redis 節點的連線後,建議您刪除用於連線至 Redis 執行個體的 Compute Engine VM。這樣做有助於避免系統向您的 Cloud 帳單帳戶收取費用。

連線至已啟用傳輸中資料加密功能的執行個體

本節提供範例,說明如何連線至已啟用傳輸中加密機制的 Memorystore for Redis Cluster 執行個體。

  1. 如果沒有與上個步驟的 Redis 執行個體使用相同授權網路的 Compute Engine VM,請按照「快速入門導覽課程:使用 Linux VM」建立及連線至 VM。

    1. 按照「在 Linux 上安裝 Redis」一文中的操作說明,在 Compute Engine VM 上安裝 redis-cli 6.0 以上版本。
  2. 按照「在用戶端上安裝憑證授權單位」一文中的操作說明,在 Linux VM 上安裝執行個體的憑證授權單位。

  3. 查看叢集的探索端點,並記下該端點。

  4. 執行下列指令,連線至執行個體的探索端點:

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

    其中:

    • DISCOVERY_ENDPOINT_ADDRESSPORT_NUMBER 是您在上一步記下的值。
  5. 執行 CLUSTER SHARDS 指令,查看叢集拓撲。記下其中一個節點的 IP 位址和通訊埠號碼。

  6. 執行下列指令,連線至所需節點:

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

    更改下列內容:

    • NODE_IP_ADDRESS 是您在上一個步驟中找到的節點 IP 位址。
    • NODE_PORT 是您在上一個步驟中找到的節點埠號。
  7. 連線至節點後,輸入一些 Redis 指令:

    輸入:

    PING
    

    結果:

    PONG