本頁面說明如何使用 Telnet 和 redis-cli 連線至 Redis 執行個體。此外,本頁面也提供相關操作說明,協助您在使用讀取副本、AUTH 和傳輸中加密等功能時進行連線。最後,本頁面提供從 Google Kubernetes Engine 環境連線的相關操作說明。
如需 Memorystore for Redis 支援的 Google Cloud 環境清單,請參閱「支援的環境」。Memorystore 支援的部分無伺服器環境需要無伺服器虛擬私有雲存取連接器。詳情請參閱無伺服器虛擬私有雲存取連接器需求。
使用 Telnet 從 Compute Engine VM 連線至 Redis 執行個體
您可以從使用 Redis 執行個體授權網路的任何 Compute Engine VM,透過支援的 RFC 1918 IP 位址連線至 Redis 執行個體。
- Compute Engine VM 必須與 Redis 執行個體使用相同授權網路,如果不存在這樣的 VM,請按照快速入門導覽課程:使用 Linux VM 來建立及連線至 VM。 
- 使用 - apt-get安裝- telnet:- sudo apt-get install telnet
- 在終端機中,透過 telnet 連線至 Redis 執行個體的 IP 位址,並將 variables 替換為適當的值。 - telnet instance-ip-address 6379 - 如果執行成功,指令會傳回下列結果: - Trying instance-ip-address… Connected to instance-ip-address 
- 在 Telnet 工作階段中,輸入一些 Redis 指令: - 輸入: - PING - 結果: - PONG - Enter 鍵 - SET HELLO WORLD - 結果: - +OK - 輸入: - GET HELLO - 結果: - $5 WORLD 
使用 redis-cli 從 Compute Engine VM 連線至 Redis 執行個體
您可以從使用 Redis 執行個體授權網路的任何 Compute Engine VM,透過支援的 RFC 1918 IP 位址連線至 Redis 執行個體。
- 如果沒有使用 Redis 執行個體授權網路的 Compute Engine VM,請按照在特定子網路中建立 VM 執行個體建立 VM 並連線。 
- 在 Compute Engine VM 上安裝 - redis-cli,方法是在 Compute Engine SSH 終端機中執行下列指令:- sudo apt-get install redis-tools 
- 在 Compute Engine 終端機中執行下列指令,並將 variables 換成適當的值。 - redis-cli -h redis-instance-ip-address - 您現在已使用 - redis-cli連線至 Redis 執行個體。
- 測試與 Redis 執行個體的連線後,請考慮刪除用於連線至 Redis 執行個體的 Compute Engine VM。這樣做有助於避免 Cloud Billing 帳戶產生費用。 
連線至使用 AUTH 的 Redis 執行個體
本節說明如何連線至已啟用 AUTH 功能的 Redis 執行個體。
- Compute Engine VM 必須與 Redis 執行個體使用相同授權網路,如果不存在這樣的 VM,請按照快速入門導覽課程:使用 Linux VM 來建立及連線至 VM。 
- 在 Compute Engine VM 上安裝 - redis-cli,方法是在 Compute Engine SSH 終端機中執行下列指令:- sudo apt-get install redis-tools 
- 取得執行個體的 AUTH 字串 
- 執行下列指令,使用 - redis-cli驗證並連線至執行個體,將 variables 取代為適當的值:- redis-cli -h instance-ip-address -a auth-string - 或: - redis-cli -h instance-ip-address AUTH auth-string 
- 執行 Redis - SET和- GET指令,確認您已與執行個體建立經過驗證的連線。
- 測試與 Redis 執行個體的連線後,請考慮刪除用於連線至 Redis 執行個體的 Compute Engine VM。這樣做有助於避免 Cloud Billing 帳戶產生費用。 
使用讀取端點連線至 Redis 執行個體
如果執行個體已啟用唯讀副本,請按照下列指示連線至讀取端點:
- Compute Engine VM 必須與 Redis 執行個體使用相同授權網路,如果不存在這樣的 VM,請按照快速入門導覽課程:使用 Linux VM 來建立及連線至 VM。 
- 使用 - apt-get安裝- telnet:- sudo apt-get install telnet
- 如要找出執行個體讀取端點的 IP 位址,請查看執行個體的唯讀副本資訊。 
- 在終端機中,透過 telnet 連線至 Redis 執行個體的讀取端點 IP 位址,並將 variables 替換為適當的值。 - telnet read-endpoint-ip 6379 - 如果執行成功,指令會傳回下列結果: - Trying read-endpoint-ip… Connected to read-endpoint-ip 
- 在 Telnet 工作階段中,輸入一些 Redis 指令: - 輸入: - PING - 結果: - PONG 
使用 Stunnel 和 Telnet 安全地連線至 Redis 執行個體
本節提供範例,說明如何使用 Stunnel 連線至已啟用傳輸中資料加密的 Redis 執行個體。
- 如果您還沒有啟用傳輸中加密的 Redis 執行個體,請按照「建立啟用傳輸中加密的 Redis 執行個體」一文的說明建立一個。 
- Compute Engine VM 必須與 Redis 執行個體使用相同授權網路,如果不存在這樣的 VM,請按照快速入門導覽課程:使用 Linux VM 來建立及連線至 VM。 - 執行下列指令,安裝本指南所需的工具: - sudo apt-get install stunnel4 - sudo apt-get install telnet 
 
- 設定 Compute Engine VM,以便搭配 Stunnel 使用: - 執行下列指令,建立新檔案來放置憑證授權單位 (CA): - sudo vim /tmp/server_ca.pem 
- 在用於管理Google Cloud 資源的標準終端機 (而非 Compute Engine 終端機) 中執行下列指令,即可查看 Redis 執行個體的憑證授權單位: - gcloud redis instances describe instance-id --region=region - 最多可有三個 CA。 
- 複製所有可見的憑證授權單位,包括 - -----BEGIN CERTIFICATE-----行和- -----END CERTIFICATE-----行,然後貼上並儲存至您先前建立的- server_ca.pem檔案。
- 執行下列指令,建立新檔案來放置 Stunnel 設定資訊: - sudo vim /etc/stunnel/redis-client.conf - 將下列文字貼入檔案,並將 redis-instance-ip 替換為 Redis 執行個體的 IP 位址: - output=/tmp/stunnel.log CAfile=/tmp/server_ca.pem client=yes pid=/var/run/stunnel.pid verifyChain=yes sslVersion=TLSv1.2 [redis] accept=127.0.0.1:6378 connect=redis-instance-ip:6378 - 執行下列指令來啟動 stunnel: - sudo stunnel /etc/stunnel/redis-client.conf - 確認 stunnel 正在執行: - ps aux | grep stunnel 
- 執行下列指令,重新啟動 Stunnel: - sudo systemctl restart stunnel4 
 
- 如要使用 Telnet 連線至 Redis 執行個體,請執行下列指令: - telnet localhost 6378 
- 在 Telnet 工作階段中,對 Redis 執行個體執行 ping 指令: - 輸入: - PING - 結果: - PONG 
使用通訊埠轉送功能從本機連線
在開發期間,從本機電腦連線至 Redis 執行個體可能很有幫助。如要這麼做,您必須建立 Compute Engine 執行個體,用於將通訊埠轉送至 Redis 執行個體。
- 執行下列指令,建立 Compute Engine 執行個體: - gcloud compute instances create COMPUTE_VM_NAME --machine-type=f1-micro --zone=ZONE - 其中: - COMPUTE_VM_NAME 是您為 Compute Engine VM 指定的名稱。
- ZONE 是您要佈建 VM 的區域。
 - 這項指令會建立具備 - f1-micro機器類型的 Compute Engine VM,以提高成本效益。如要選擇其他機器類型,請點選該選項。
- 在本機開啟新的終端機。 
- 如要建立 SSH 通道,透過 Compute Engine VM 轉送流量,請執行下列指令: - gcloud compute ssh COMPUTE_VM_NAME --zone=ZONE -- -N -L 6379:REDIS_INSTANCE_IP_ADDRESS:6379 - 其中: - COMPUTE_VM_NAME 是 Compute Engine VM 的名稱。
- ZONE 是 Compute Engine VM 所在的區域。
- REDIS_INSTANCE_IP_ADDRESS 是 Redis 執行個體的 IP 位址。
 
- 如要測試連線,請開啟新的終端機視窗並執行下列指令: - redis-cli ping - 如果運作正常,結果應會傳回: - PONG - 您現在已連線至 Redis 執行個體,可以透過這個開啟的 SSH 通道將指令傳送至 Redis 執行個體。如果尚未安裝 - redis-cli,請先安裝,才能執行這項指令。
- 只要終端機視窗保持開啟,SSH 通道連線就會持續運作。 
從 Google Kubernetes Engine 叢集連線至 Redis 執行個體
您可以從與 Redis 執行個體使用相同授權網路的 Google Kubernetes Engine 叢集連線至 Redis 執行個體。
從執行 bash 殼層的 Pod 連線
- 前往 Google Cloud 控制台的 GKE 頁面。
 GKE
- 按一下要進行連線的 GKE 叢集。如果沒有叢集,請建立一個並啟用 IP 別名。如需瞭解如何建立啟用 IP 別名的叢集,請參閱建立虛擬私有雲原生叢集。
- 按一下叢集名稱右側的 [Connect] (連線) 按鈕,然後在隨即顯示的視窗中按一下 [Run in Cloud Shell] (在 Cloud Shell 中執行) 按鈕。
- 如要設定 kubectl指令列的存取方式,請執行下列指令:gcloud container clusters get-credentials CLUSTER_NAME --zone=CLUSTER_ZONE --project=PROJECT_ID - CLUSTER_NAME是叢集名稱。
- CLUSTER_ZONE是叢集所在的區域。您的 Redis 執行個體也必須位在這個區域中。
- PROJECT_ID是叢集和 Redis 執行個體所在的專案。
 kubeconfig generated for CLUSTER_NAME
- 如果您的叢集為 1.8 以上版本且已啟用 IP 別名,請略過此步驟。如果叢集為 1.7 以下版本,或 1.8 以上版本叢集未啟用 IP 別名,請先按照下列解決方法步驟操作,再嘗試連線至執行個體: 如要進一步瞭解 IP 別名,包含如何建立已啟用這項設定的叢集,請參閱建立 VPC 原生叢集。
- 使用下列指令連線至 bash 殼層:kubectl run -i --tty busybox --image=busybox -- sh 
- 使用主機位址與通訊埠編號建立與 Redis 執行個體的 Telnet 連線:telnet HOST-IP PORT 
- 輸入 Redis 基本指令以驗證連線:PING +PONG 
- 如要關閉 Telnet 連線,請按下 Ctrl+C 或 Command+C (Mac)。如要結束 pod 中的 bash 殼層,請輸入「return」。完成後,如果不再需要連線至 Redis,請從 /k8s-custom-iptables/目錄執行下列指令:./uninstall.sh 
從 Google Kubernetes Engine Pod 連線至 Redis 執行個體
在開始連線之前,您需要具有 GKE 叢集。如果沒有叢集,請建立一個並啟用 IP 別名。如需瞭解如何建立啟用 IP 別名的叢集,請參閱建立虛擬私有雲原生叢集。
- 按一下主控台右上角的「啟用 Cloud Shell」 按鈕。 按鈕。
- 如要設定 kubectl指令列的存取方式,請執行下列指令:gcloud container clusters get-credentials CLUSTER_NAME --zone CLUSTER_ZONE --project PROJECT_ID - CLUSTER_NAME是叢集名稱。
- CLUSTER_ZONE是叢集所在的區域。您的 Redis 執行個體也必須位在這個區域中。
- PROJECT_ID是叢集和 Redis 執行個體所在的專案。
 kubeconfig generated for CLUSTER_NAME
- 如果您的叢集為 1.8 以上版本且已啟用 IP 別名,請略過此步驟。如果叢集為 1.7 以下版本,或 1.8 以上版本叢集未啟用 IP 別名,請先按照下列解決方法步驟操作,再嘗試連線至執行個體: 如要進一步瞭解 IP 別名,包含如何建立已啟用這項設定的叢集,請參閱建立 VPC 原生叢集。
- 使用下列指令啟動執行 redis-cli的 Redis Pod:kubectl run -i --tty redisbox --image=gcr.io/google_containers/redis:v1 -- sh 
- 執行 redis-cli指令,並將HOST-IP替換為 Redis 執行個體的主機 IP 位址:redis-cli -h HOST-IP info 
- 您也可以選擇執行 Redis benchmark 指令,並同樣將 HOST-IP替換為 Redis 執行個體的主機 IP 位址:redis-benchmark -c 100 -n 100000 -d 1024 -r 100000 -t PING,SET,GET,INCR,LPUSH,RPUSH,LPOP,RPOP,SADD,SPOP,MSET -h HOST-IP -q 
- 如要退出 Redis Pod,請輸入 return。完成後,如果不再需要連線至 Redis,請從/k8s-custom-iptables/目錄執行下列指令:./uninstall.sh 
後續步驟
使用在下列環境中執行的應用程式範例連線至 Redis 執行個體: