本頁面說明如何使用 Telnet 和 redis-cli
連線至 Redis 執行個體。此外,本頁面還提供使用讀取/寫入副本、AUTH 和傳輸中加密等功能時的連線方式說明。最後,本頁面提供從 Google Kubernetes Engine 環境連線的操作說明。
如需 Google Cloud Memorystore for Redis 支援的環境清單,請參閱「支援的環境」。部分 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 SSH 終端機中執行下列指令,在 Compute Engine VM 上安裝
redis-cli
: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 SSH 終端機中執行下列指令,在 Compute Engine VM 上安裝
redis-cli
: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 的區域。
這個指令會使用
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 通道連線的終端機視窗保持運作,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 別名,包含如何建立已啟用這項設定的叢集,請參閱「
- 使用下列指令連線至 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 別名,包含如何建立已啟用這項設定的叢集,請參閱「
- 使用下列指令啟動執行
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 執行個體: