Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
如何測試與 ElastiCache Redis OSS 或 Memcached 叢集的連線?
我想從 Linux 用戶端測試與 Amazon ElastiCache Redis OSS 或 Amazon ElastiCache Memcached 叢集的連線。
解決方法
**注意事項:**此解決方案僅針對非計劃性使用測試連線。如需支援的 Redis 用戶端清單,請參閱 Redis 網站上的與 Redis 用戶端連線。
Amazon ElastiCache 支援 Redis OSS 和 Memcached 記憶體鍵值引擎。您啟動 ElastiCache 快取叢集時,請選擇偏好的引擎。
對於 Java、.NET 或 PHP 的 Memcached,最佳實務是採用具有自動探索功能的 ElastiCache 用戶端。具有自動探索功能的 ElastiCache 用戶端會在新增至快取叢集時自動識別新的 ElastiCache 節點。
建立 ElastiCache 叢集
若要建立 ElastiCache Redis OSS 叢集,請參閱為 Valkey 或 Redis OSS 建立叢集。
若要建立 Memcached 叢集,請參閱為 Memcached 建立叢集。
連線至 ElastiCache Redis OSS 叢集
ElastiCache 同時支援已停用的叢集模式 (CMD) 和已啟用叢集模式 (CME) 的 Redis OSS 叢集。若要測試與這些叢集的連線,請使用 redis-cli 或 redis6-cli 公用程式。redis-cli 和 redis6-cli 的最新版本支援 SSL/TLS 連線至已開啟加密或驗證的叢集。
在您要連線的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體上下載並編譯 redis-cli 公用程式。如需詳細資訊,請參閱開始使用 Amazon EC2。
**注意事項:**下列範例使用了執行 Amazon Linux、Amazon Linux 2 和 Amazon Linux 2023 的 Amazon EC2 執行個體。若要使用其他 Linux 發行版本來安裝和編譯 redis-cli 和 redis6-cli,請參閱作業系統的文件。
若要連線到 ElastiCache Redis OSS 叢集,請針對您的作業系統執行下列其中一個命令。
Amazon Linux 2023:
sudo yum install redis6 -y
Amazon Linux 2:
sudo amazon-linux-extras install epel -y sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel -y sudo wget http://download.redis.io/redis-stable.tar.gz sudo tar xvzf redis-stable.tar.gz cd redis-stable sudo make BUILD_TLS=yes
Amazon Linux:
sudo yum install gcc jemalloc-devel openssl-devel tcl tcl-devel clang wget sudo wget http://download.redis.io/redis-stable.tar.gz sudo tar xvzf redis-stable.tar.gz cd redis-stable sudo CC=clang make BUILD_TLS=yes
Redis-CLI 連線到 Redis 時,會使用未加密的 TCP 連線。redis-cli 編譯時,BUILD_TLS=yes 選項會開啟 SSL/TLS。如果您連接的叢集在傳輸過程中沒有加密,則不需要 Build_TLS=yes 選項。
**注意事項:**安裝 redis6 套件時,您會自動安裝具有預設 SSL/TLS 支援的 redis6-cli。
如需如何尋找 Redis 端點的相關資訊,請參閱在 ElastiCache 中尋找連線端點。
在下列步驟中,加密或未加密的叢集指的是傳輸中的加密。
連線至未經 CMD 加密的叢集
**注意事項:**在下列命令中,請將 change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 取代為您叢集的端點,並將 6379 取代為您的連接埠號碼。
針對您的作業系統執行下列其中一個命令。
Amazon Linux 2023:
redis6-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com -p 6379
此命令會傳回類似於下列範例的 Redis 命令提示字元:
change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com:6379>
連線到叢集之後,您可以執行 Redis 命令。
命令範例:
set a "hello" OK get a "hello" quit
如需詳細資訊,請參閱 Redis 網站上的命令。
連線至未經 CME 加密的叢集
**注意事項:**在下列命令中,請將 cluster-disable-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com 取代為您叢集的組態端點,並將 6379 取代為您的連接埠號碼。
針對您的作業系統執行下列其中一個命令。
Amazon Linux 2023:
redis6-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com -c -p 6379
**注意事項:**在前述命令中,選項 -c 會在 -ASK 和 -MOVED 重新導向後開啟叢集模式。如果您沒有開啟重新導向,該命令就會傳回 MOVED 錯誤。如需詳細資訊,請參閱 Redis 叢集通訊協定中的用戶端和伺服器角色,以及 Redis 網站上的 Redis 叢集規格。
此命令會傳回類似於下列範例的 Redis 命令提示字元:
cluster-disabled-rediscli.54awdt.clustercfg.use1.cache.amazonaws.com:>
Redis 命令範例:
set x Hi-> Redirected to slot [16287] located at 172.31.28.122:6379OK 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"
連線至已開啟加密或驗證的叢集
若要開啟 AUTH,您還必須開啟傳輸中加密。如需詳細資訊,請參閱 ElastiCache 傳輸中加密 (TLS)。
若要連線到 CME 和叢集 CMD 加密的叢集,請使用 redis-cli 中的 --tls 選項。如果叢集具備 AUTH 權杖集,請使用選項 -a 來提供 AUTH 密碼。
**注意事項:**在 Redis 第 7 版及更新版本中,現有的 ElastiCache 叢集已開啟傳輸中加密。您不需要重建或重新佈建叢集,即可變更 Redis OSS 叢集的 TLS 組態。而且應用程式可用性不會受到影響。
開啟傳輸中加密時,請更新用戶端組態以使用新的 TLS 專用端點。
連線至 CMD 加密的叢集
**注意事項:**在下列命令中,請將 master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com 取代為您叢集的端點組態,並將 6379 取代為您的連接埠號碼。
若要連線至已開啟加密和驗證的 CMD 叢集,請針對您的作業系統執行下列其中一個命令。
Amazon Linux 2023:
redis6-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com --tls -a PASSWORD -p 6379
若要連線到僅開啟加密的 CMD 叢集,請針對您的作業系統執行下列其中一個命令:
Amazon Linux 2023:
redis6-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h master.cluster-disabled-noauth.54awdt.use1.cache.amazonaws.com --tls -p 6379
連線到 CME 加密的叢集
若要連線至已開啟加密和驗證的 CME 叢集,請針對您的作業系統執行下列其中一個命令:
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithauth.54awdt.use1.cache.amazonaws.com --tls -c -a PASSWORD -p 6379
若要連線到僅開啟加密的 CME 叢集,請針對您的作業系統執行下列其中一個命令:
Amazon Linux 2023:
redis6-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Amazon Linux 和 Amazon Linux 2:
src/redis-cli -h clustercfg.tlswithoutauth.54awdt.use1.cache.amazonaws.com --tls -c -p 6379
Redis-cli 替代產品
若要在沒有 redis-cli 編譯的情況下執行簡短測試,請使用 telnet 或 openssl 連線到 CMD 叢集。
連線後,您可以執行 Redis 命令。
下列範例命令會連線到已加密或經驗證的 CMD 叢集:
openssl s_client -connect master.rediscli-cluster-disabled.54awdt.use1.cache.amazonaws.com:6379
如果您為叢集設定密碼,請先連線到叢集。連線之後,請使用下列命令驗證該叢集,然後按一下 Enter:
Auth Password
**注意事項:**在下列命令範例中,請將 Password 取代為您的叢集密碼
下列命令範例會連線至未開啟加密或驗證的 CMD 叢集:
telnet change-node-type.54awdt.ng.0001.use1.cache.amazonaws.com 6379
連線至 ElastiCache Memcached 叢集
若要連線至 Memcached 叢集,請使用 Telnet 公用程式。
連線至沒有傳輸中加密的 Memcached 叢集
請完成下列步驟:
-
在您要測試連線的執行個體上安裝 telnet 公用程式。
若是 CentOS 系統,請執行以下命令:
sudo yum install telnet
若是 Debian 系統 (Ubuntu),請執行以下命令:
sudo apt-get install telnet
若要連線到執行個體,請參閱連線至 EC2 執行個體。
-
若要連線至端點,請執行下列命令:
telnet mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 11211
**注意事項:**請將 mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com 取代為您的端點,並將 11211 取代為您節點的連接埠。
輸出範例:
Trying 128.0.0.1...Connected to mycachecluster.eaogs8.0001.usw2.cache.amazonaws.com.Escape character is '^]'. >
您現在已連線到一個節點,而且可以執行 Memcached 命令。
Memcached 命令範例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
連線至具有傳輸中加密的 MemCached 叢集
執行 Memcached 1.6.12 版及更新版本的叢集支援傳輸中加密。Telnet 不使用加密。若要連線至已啟用加密的 MemCached 叢集,請使用 openssl。
**注意事項:**只有在建立叢集時,您才能在叢集上開啟傳輸中加密。您無法修改該叢集以開啟或關閉傳輸中加密。如需詳細資訊,請參閱 ElastiCache 傳輸中加密 (TLS)。
若要連線至端點,請執行下列命令:
openssl s_client -quiet -crlf -connect testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com:11211
**注意事項:**請將 testwithtls.qtyxq7.cfg.apse2.cache.amazonaws.com 取代為您的端點,並將 11211 取代為您節點的連接埠。
輸出範例:
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1 verify return:1 depth=1 C = US, O = Amazon, CN = Amazon RSA 2048 M02 verify return:1 depth=0 CN = *.testwithtls.qtyxq7.apse2.cache.amazonaws.com verify return:1
您現在已連線到一個節點,而且可以執行 Memcached 命令。
Memcached 命令範例:
set a 0 0 5helloSTORED get a VALUE a 0 5 hello END
相關內容
- 已提問 5 個月前lg...
- 已提問 1 年前lg...
- 已提問 2 年前lg...
- 已提問 7 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 10 個月前
- AWS 官方已更新 9 個月前