本頁面說明如何使用 Telnet 和 redis-cli 連線至 Redis 執行個體。此外,本頁面也提供操作說明,說明如何在使用讀取副本、AUTH 和傳輸中加密等功能時進行連線。最後,本頁面提供從 Google Kubernetes Engine 環境連線的說明。
如需 Memorystore for Redis 支援的 Google Cloud 環境清單,請參閱「支援的環境」。Memorystore 支援的部分無伺服器環境需要無伺服器虛擬私有雲存取連接器。詳情請參閱無伺服器虛擬私有雲存取連接器需求。
使用 Telnet 從 Compute Engine VM 連線至 Redis 執行個體
您可以從使用執行個體授權網路的任何 Compute Engine VM,透過支援的 RFC 1918 IP 位址連線至 Memorystore for Redis 執行個體。
如果沒有與執行個體使用相同授權網路的 Compute Engine VM,請建立一個並使用 SSH 連線至 VM。如要這麼做,請按照「在 Compute Engine 中建立 Linux VM 執行個體」一文中的步驟操作。
使用
apt-get安裝telnet:sudo apt-get install telnet在終端機中,透過 telnet 連線至執行個體的 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 執行個體」一文的說明建立一個。
如果沒有與 Redis 執行個體使用相同授權網路的 Compute Engine 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 的區域。
這項指令會建立 Compute Engine VM,並使用
f1-micro機器類型,以提高成本效益。您可以選擇其他機器類型。在本機開啟新的終端機。
如要建立 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 執行個體
如要確認叢集是否使用 IP 別名,請使用 gcloud container clusters describe。
您可以從與 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 執行個體: