這很重要
Azure Cache for Redis 宣布了所有 SKU 的淘汰時間表。 建議您儘快將現有的 Azure Cache for Redis 執行個體移至 Azure 受控 Redis 。
有關退役的更詳細資訊:
本文說明如何針對將用戶端應用程式連線至 Azure Cache for Redis 的常見問題進行疑難解答。 連接性問題可能是間歇性問題或不正確的快取設定造成。 本文分為間歇性問題和快取設定問題。
間歇連線能力問題
快取設定連線問題
測試連線能力
您可以使用 Redis 命令行工具 redis-cli 來測試連線能力。 如需 Redis CLI 的詳細資訊,請參閱 搭配 Azure Cache for Redis 使用 Redis 命令行工具。
如果 redis-cli 無法連線,您可以在 Azure PowerShell 中使用 PSPING 來測試連線能力。
psping -q <cachename>:<port>
如果傳送的封包數目等於已接收的封包數目,則連線能力不會下降。
間歇連線能力問題
用戶端應用程式可能有間歇性連線問題,原因是連線數目尖峰或修補等事件所造成。
Kubernetes 裝載的應用程式
如果您的用戶端應用程式裝載在 Kubernetes 上,請檢查執行用戶端應用程式的叢集節點或 Pod 是否處於記憶體、CPU 或網路壓力之下。 執行用戶端應用程式的 Pod 可能會受到在相同節點上執行的其他 Pod 影響,可能會限制 Redis 連線或 IO 作業。
如果您使用 Istio 或任何其他服務網狀結構,請確定您的服務網狀結構 Proxy 會保留埠 13000-13019 或 15000-15019。 用戶端會使用這些埠與叢集 Azure Redis 快取中的節點通訊,並可能導致這些埠的連線問題。
以 Linux 為基礎的用戶端應用程式
在 Linux 中使用樂觀的 TCP 設定可能會導致客戶端應用程式的連線問題。 如需詳細資訊,請參閱 Linux 裝載用戶端應用程式的 TCP 設定 ,以及 持續 15 分鐘的連線停滯。
已連線用戶端數目
檢查已連線用戶端計量的 [最大匯總] 是否接近或高於快取大小允許的連線數目上限。 如需調整每個用戶端連線大小的詳細資訊,請參閱 Azure Cache for Redis 效能。
伺服器維護
您的快取可能會在維護期間經歷計劃性或非計劃性伺服器維護,對您的應用程式造成負面影響。 在 Azure 入口網站中檢查快取的錯誤 (類型:容錯移轉)計量,即可驗證此問題。 若要將容錯移轉的影像降至最低,請參閱連線復原能力。
連線配置問題
如果您的應用程式完全無法連線到 Azure Redis 快取,某些快取組態可能無法正確設定。 下列各節提供如何確定快取已正確設定的建議。
防火牆規則
如果您已針對 Azure Redis 快取設定防火牆,請確定您的用戶端 IP 位址已新增至防火牆規則。 若要檢查防火牆規則,請針對快取頁面選取左側導覽功能表中的 [設定] 底下的 [防火牆]。
第三方防火牆或外部 Proxy
如果您在網路中使用第三方防火牆或 Proxy,請確定它允許 Azure Cache for Redis 端點 *.redis.cache.windows.net 和埠 6379 和 6380。 當您使用叢集快取或異地複寫時,可能需要允許更多埠。
私人端點組態
在 Azure 入口網站中,從您的快取左側導覽功能表中選擇 [設定] 下的 [私有端點],以檢查您的私有端點組態。
在 [私人端點] 頁面上,確定 [ 啟用公用網络存取 ] 已正確設定。
- 當您建立私人端點時,預設會停用公用網路存取。
- 若要從快取虛擬網路外部連線到快取私人端點,您必須啟用公用網路存取。
- 如果您刪除私人端點,請務必啟用公用網路存取。
選取 [私人端點 ] 底下的連結,並確定您的私人端點已正確設定。 如需詳細資訊,請參閱使用新的 Azure Cache for Redis 執行個體建立私人端點。
請確保您的應用程式連線到
<cachename>.redis.cache.windows.net的連接埠6380。 避免在設定或連接字串中使用<cachename>.privatelink.redis.cache.windows.net。若要確認命令解析為快取的私有 IP 位址,請在連結至私有端點的虛擬網路內執行類似
nslookup <hostname>的命令。
公用 IP 位址變更
如果您將任何網路或安全性資源設定為使用快取的公用IP位址,請檢查快取的公用IP位址是否已變更。 如需詳細資訊,請參閱 依賴主機名而非公用IP位址。
虛擬網路設定
請檢查您的虛擬網路組態,如下所示:
- 請確保已將虛擬網路指派給您的快取。 在 Azure 入口網站中,選取快取左側導覽功能表中 [設定] 下的 [虛擬網路]。
- 確保用戶端主機電腦位於與快取相同的虛擬網路中。
- 如果用戶端應用程式位於與快取不同的虛擬網路中,請為相同 Azure 區域內的兩個虛擬網路啟用對等互連。
- 確認輸入和輸出規則符合埠需求。
如需詳細資訊,請參閱 設定進階 Azure Cache for Redis 實例的虛擬網路支援。
使用 VNet 插入搭配進階快取進行異地複寫
支援在相同虛擬網路中多個快取之間的異地複寫。 支援在不同虛擬網路中多個快取之間的異地複寫,但有下列注意事項:
如果虛擬網路位於相同的區域,您可以使用 虛擬網路對等互連 或 VPN 閘道 VNet 對 VNet 連線來連線。
如果虛擬網路位於不同區域,則不支援使用虛擬網路對等互連的異地複寫。 由於基本內部負載平衡器的限制,位於
VNet 1(區域 1) 的用戶端虛擬機器無法使用其名稱存取位於VNet 2(區域 2) 的快取。 請改用 VPN 閘道 VNet 對 VNet 連線。 如需虛擬網路對等互連條件約束的詳細資訊,請參閱 虛擬網路對等互連需求和條件約束。
若要有效設定虛擬網路並避免異地復寫問題,您必須正確設定輸入和輸出埠。 如需避免最常見的虛擬網路設定錯誤問題的詳細資訊,請參閱 異地復寫對等埠需求。
雖然可以搭配進階快取來使用虛擬網路插入,但最好使用 Azure Private Link。 如需詳細資訊,請參閱