步驟 4:連線至叢集的節點 - Amazon ElastiCache (雷迪斯 OSS)

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 4:連線至叢集的節點

在繼續之前,請先完成步驟3:授予叢集的存取權

本節假設您已建立 Amazon EC2 執行個體且可連線至該執行個體。如需操作方式說明,請參閱 Amazon EC2 入門指南

只有在您獲得授權執行此作業時,Amazon EC2 執行個體才能連線至叢集節點。

尋找您的節點端點

當您的叢集處於可用狀態,且您獲得存取授權後,您就可以登入 Amazon EC2 執行個體並連線至叢集。若要執行此作業,您必須先判斷端點。

尋找 Redis OSS (叢集模式已停用) 叢集的端點 (主控台)

如果 Redis OSS (叢集模式已停用) 叢集只有一個節點,則該節點的端點同時用於讀取和寫入。如果叢集有多個節點,則端點類型有三種:主要端點讀取者端點節點端點

主要端點是一種一律會解析至叢集中主要節點的 DNS 名稱。主要端點不會受到您叢集變更的影響 (例如將僅供讀取複本提升至主要角色)。針對寫入活動,我們建議您的應用程式連線到主要端點。

讀取器端點會在 ElastiCache (Redis OSS) 叢集中的所有僅供讀取複本之間平均分割端點的連入連線。其他因素 (例如應用程式建立連線或應用程式如何 (重新) 使用連線) 將決定流量分佈。隨著複本的新增或移除,讀取器端點會跟著叢集的變更即時保持在最新狀態。您可以將 ElastiCache (Redis OSS) 叢集的多個僅供讀取複本放置在不同的可 AWS 用區域 (AZ),以確保讀取器端點的高可用性。

注意

讀取者端點並非負載平衡器。它是一筆 DNS 記錄,會以循環配置方式解析為其中一個複本節點的 IP 地址。

針對讀取活動,應用程式也可連線到叢集中的任何節點。與主要端點不同,節點端點會解析至特定端點。若您在叢集中進行變更 (例如新增或刪除複本),您必須更新您應用程式中的節點端點。

若要尋找 Redis OSS (叢集模式已停用) 叢集的端點
  1. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/

  2. 在瀏覽窗格中,選擇 Redis 的 OSS 快取。

    叢集畫面會顯示一個清單,其中包含任何現有 Redis OSS 無伺服器快取、Redis OSS (叢集模式已停用) 和 Redis OSS (已啟用叢集模式) 叢集。選擇您在 建立 Redis OSS (叢集模式已停用) 叢集 (主控台) 一節中建立的叢集。

  3. 若要尋找叢集的主要和/或讀取器端點,請選擇叢集名稱 (而非選項按鈕)。

    影像:Redis OSS (叢集模式已停用) 叢集的主要端點

    Redis OSS (叢集模式已停用) 叢集的主要端點和讀取器端點

    如果叢集中只有一個節點,就不會有主要端點,因此您必須繼續下一個步驟。

  4. 如果 Redis OSS (叢集模式已停用) 叢集具有複本節點,您可以選擇叢集的名稱,然後選擇節點索引標籤,以尋找叢集的複本節點端點。

    隨即顯示節點畫面,其顯示叢集中的每個節點、主要複本和複本,並與其端點一起列出。

    影像:Redis OSS (叢集模式已停用) 叢集的節點端點

    Redis OSS (叢集模式已停用) 叢集的節點端點

  5. 將端點複製到剪貼簿:

    1. 逐一尋找您要複製的端點。

    2. 選擇端點前面的複製圖示。

    現在,端點即已複製到您的剪貼簿。如需使用端點連線至節點的相關資訊,請參閱 連線至節點

Redis OSS (叢集模式已停用) 主要端點看起來如下所示。其中的差異取決於是否啟用傳輸中加密。

未啟用傳輸中加密

clusterName.xxxxxx.nodeId.regionAndAz.cache.amazonaws.com:port redis-01.7abc2d.0001.usw2.cache.amazonaws.com:6379

已啟用傳輸中加密

master.clusterName.xxxxxx.regionAndAz.cache.amazonaws.com:port master.ncit.ameaqx.use1.cache.amazonaws.com:6379

若要進一步探索您的端點,請參閱您所執行引擎和叢集類型的相關主題。

現在,您有了所需的端點,您可以登入 EC2 執行個體並連線到叢集或複寫群組。在下列範例中,您會使用 redis-cli 公用程式連線到叢集。最新版本的 redis-cli 也支援 SSL/TLS 用於連線啟用加密/身分驗證的叢集。

下列範例使用執行 Amazon Linux 和 Amazon Linux 2 的 Amazon EC2 執行個體。如需有關使用其他 Linux 發行版安裝和編譯 redis-cli 的詳細資訊,請參閱您作業系統專屬的說明文件。

注意

此程序涵蓋使用 redis-cli 公用程式來測試連線,僅供非預期用途使用。如需支援的 Redis OSS 用戶端清單,請參閱 Redis 的 OSS 文件。如需搭配使用 AWS SDK 的範例 ElastiCache,請參閱ElastiCache 和 AWS 軟體開發套件入門

連線至停用叢集模式的未加密叢集

  1. 執行下列命令,以連線至叢集,並將 primary-endpointport number 取代為您叢集的端點和連接埠號碼。(Redis 作業系統的預設連接埠為 6379。)

    src/redis-cli -h primary-endpoint -p port number

    Redis OSS 命令提示字元中的結果看起來類似下列:

    primary-endpoint:port number
  2. 您現在可以執行 Redis 的 OSS 命令。

    set x Hello OK get x "Hello"

連線至啟用叢集模式的未加密叢集

  1. 執行下列命令,以連線至叢集,並將 configuration-endpointport number 取代為您叢集的端點和連接埠號碼。(Redis 作業系統的預設連接埠為 6379。)

    src/redis-cli -h configuration-endpoint -c -p port number
    注意

    上述命令中,選項 -c 可讓叢集模式遵循 -ASK 和 -MOVED 重新引導

    Redis OSS 命令提示字元中的結果看起來類似下列:

    configuration-endpoint:port number
  2. 您現在可以執行 Redis 的 OSS 命令。請注意,發生重新引導是因為您使用 -c 選項啟用了此功能。如果未啟用重新引導,該命令會傳回 MOVED 錯誤。如需有關移動錯誤的詳細資訊,請參閱 Redis OSS 叢集規格。

    set x Hi -> Redirected to slot [16287] located at 172.31.28.122:6379 OK set y Hello OK get y "Hello" set z Bye -> Redirected to slot [8157] located at 172.31.9.201:6379 OK get z "Bye" get x -> Redirected to slot [16287] located at 172.31.28.122:6379 "Hi"

連線到啟用加密/身分驗證的叢集

默認情況下,當連接到 Redis 的 OSS 時,redis-cli 使用未加密的 TCP 連接。選項 BUILD_TLS=yes 會在執行 redis-cli 編譯時啟用 SSL/TLS,如前面的 下載並設定 redis-cli 一節所說明。啟用 AUTH 功能為選用操作。不過,您必須啟用傳輸中加密功能,才能啟用 AUTH。如需 ElastiCache 加密和驗證的詳細資訊,請參閱ElastiCache 傳輸中加密 (TLS)

注意

您可以使用選項 --tls 搭配 redis-cli,連線至啟用和停用叢集模式的加密叢集。如果叢集已設定 AUTH 字符,則可以使用 -a 選項提供 AUTH 密碼。

在下列範例中,請務必將 cluster-endpointport number 取代為您叢集的端點和連接埠號碼。(Redis 作業系統的預設連接埠為 6379。)

連線到停用叢集模式的加密叢集

下列範例會連線到啟用加密和身分驗證的叢集:

src/redis-cli -h cluster-endpoint --tls -a your-password -p port number

下列範例會連線到只啟用加密的叢集:

src/redis-cli -h cluster-endpoint --tls -p port number

連線到啟用叢集模式的加密叢集

下列範例會連線到啟用加密和身分驗證的叢集:

src/redis-cli -c -h cluster-endpoint --tls -a your-password -p port number

下列範例會連線到只啟用加密的叢集:

src/redis-cli -c -h cluster-endpoint --tls -p port number

連線到叢集之後,您可以執行 Redis OSS 命令,如前述未加密叢集的範例所示。

Redis-cli 替代方案

如果叢集未啟用叢集模式,且您需要在不進行 redis-cli 編譯的情況下連線到叢集以進行短期測試,則可以使用 telnet 或 openssl。在下列命令範例中,請務必將 cluster-endpointport number 取代為您叢集的端點和連接埠號碼。(Redis 作業系統的預設連接埠為 6379。)

下列範例會連線到啟用加密和/或身分驗證且停用叢集模式的叢集:

openssl s_client -connect cluster-endpoint:port number

如果叢集已設定密碼,請先連線至叢集。連線後,請使用下列命令驗證叢集,然後按 Enter 鍵。在下列範例中,將 your-password 取代為您的叢集密碼。

Auth your-password

下列範例會連線到沒有啟用加密和/或身分驗證且停用叢集模式的叢集:

telnet cluster-endpoint port number

若要使用 Redis OSS CLI 從 EC2 Windows 執行個體連線至 Redis 的 OSS 叢集,您必須下載 Redis-cli 套件,並使用 redis-cli.exe 從 EC2 視窗執行個體連線至 Redis OSS 叢集。

在下列範例中,您可以使用 redis-cli 公用程式連線至未啟用加密的叢集,並執行 Redis OSS。如需有關 Redis OSS 和可用 Redis OSS 命令的詳細資訊,請參閱 Redis OSS 網站上的 Redis OSS 命令

若要連線至未啟用加密的 Redis 作業系統叢集,請使用 Redis-cli
  1. 使用您選擇的連線公用程式連線到 Amazon EC2 執行個體。如需如何連線到 Amazon EC2 執行個體的說明,請參閱 Amazon EC2 入門指南

  2. 複製並貼上網際網路瀏覽器https://github.com/microsoftarchive/redis/releases/download/win-3.0.504/Redis-x64-3.0.504.zip中的連結,以便從可用版本下載 Redis OSS 用戶端的 zip 檔案,網址為: GitHub https://github.com/microsoftarchive/redis/releases/tag/win-3.0.504

    將 zip 檔案解壓縮到所需的資料夾/路徑。

    開啟命令提示字元並變更至 Redis OSS 目錄,然後執行命令。c:\Redis>redis-cli -h Redis_Cluster_Endpoint -p 6379

    例如:

    c:\Redis>redis-cli -h cmd.xxxxxxx.ng.0001.usw2.cache.amazonaws.com -p 6379
  3. 執行 Redis 的 OSS 命令。

    您現在已連線到叢集,並且可以執行如下所示的 Redis OSS 命令。

    set a "hello" // Set key "a" with a string value and no expiration OK get a // Get value for key "a" "hello" get b // Get value for key "b" results in miss (nil) set b "Good-bye" EX 5 // Set key "b" with a string value and a 5 second expiration "Good-bye" get b // Get value for key "b" "Good-bye" // wait >= 5 seconds get b (nil) // key has expired, nothing returned quit // Exit from redis-cli