本頁面說明如何使用 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 別名,請先按照下列解決方法步驟操作,再嘗試連線至執行個體: 建立 VPC 原生叢集。 如要進一步瞭解 IP 別名,包含如何建立已啟用這項設定的叢集,請參閱
- 使用下列指令連線至 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 別名,請先按照下列解決方法步驟操作,再嘗試連線至執行個體: 建立 VPC 原生叢集。 如要進一步瞭解 IP 別名,包含如何建立已啟用這項設定的叢集,請參閱
- 使用下列指令啟動執行
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 執行個體: