使用 Azure 受控 Redis 進行開發(預覽版)
連線復原能力和伺服器負載
開發用戶端應用程式時,請務必考慮連線復原能力和管理伺服器負載的相關最佳做法。
考慮更多的索引鍵和較小的值
Azure 受控 Redis (預覽版) 最適合使用較小的值。 若要將數據分散到多個索引鍵,請考慮將較大的數據區塊分割成較小的區塊。 如需理想值大小的詳細資訊,請參閱這篇文章。
大型要求或回應大小
大型的要求/回應可能會導致逾時。 例如,假設您在用戶端上設定的逾時值為 1 秒。 應用程式同時 (使用相同的實體網路連線) 要求兩個金鑰 (例如 'A' 和 'B')。 大部分用戶端都支援管道傳送要求,其中兩個要求 『A』 和 『B』 都會一個接一個地傳送,而不會等待其回應。 伺服器會以相同順序傳回回應。 如果回應 'A' 很大,其可能會用掉稍後要求的大部分逾時。
在下列範例中,'A' 和 'B' 要求會快速傳送至伺服器。 伺服器會開始快速傳送 'A' 和 'B' 回應。 由於資料傳輸時間,即使伺服器快速回應,'B' 回應必須等待 'A' 回應逾時。
|-------- 1 Second Timeout (A)----------|
|-Request A-|
|-------- 1 Second Timeout (B) ----------|
|-Request B-|
|- Read Response A --------|
|- Read Response B-| (**TIMEOUT**)
此要求/回應並不容易測量。 您可以檢測用戶端程式碼來追蹤大型要求和回應。
大型回應大小的解析會有所不同,但包括:
- 將應用程式最佳化,以適用於大量的小型值,而不是少數幾個大型值。
- 比較好的解決方案是將資料分割成相關的較小值。
- 請參閱貼文: Redis 的理想值大小範圍為何?100 KB 是否會太大?,以取得為何建議較小值的詳細資料。
- 增加虛擬機的大小,以取得更高的頻寬功能
- 用戶端或伺服器 VM 上的更多頻寬可減少較大回應的數據傳輸時間。
- 將兩部機器上的目前網路使用量與目前 VM 大小的限制進行比較。 只在伺服器或用戶端上提高頻寬可能不夠。
- 增加應用程式使用的連線物件數目。
- 使用循環配置資源方法透過不同的連線物件提出要求。
使用管線傳送
嘗試選擇支援 Redis 管線傳送的 Redis 用戶端。 管線傳送有助於有效地使用網路,並儘可能獲得最佳輸送量。
避免高成本的作業
某些 Redis 作業 (例如 KEYS 命令),成本很高,因此應該避免。 如需關於長時間執行命令的一些考量,請參閱長時間執行命令。
選擇適當的階層
Azure 受控 Redis 提供記憶體優化、平衡、計算優化和快閃優化層。 如需有關如何選擇階層 的詳細資訊,請參閱這裡。 我們建議進行效能測試,以選擇正確的階層並驗證連線設定。 如需詳細資訊,請參閱效能計數器。
選擇適當的可用性模式
Azure 受控 Redis 提供啟用或停用高可用性設定的選項。 停用高可用性模式時,不會復寫AMR實例的數據,因此您的 Redis 實例在維護期間將無法使用。 AMR 實例中的所有數據也會在計劃性或非計劃性維護時遺失。 建議您只針對您的開發或測試工作負載停用高可用性。 具有高可用性的 Redis 實例效能也可能較低,因為缺少數據復寫,這對主要和複本數據分區之間的負載至關重要。
與 Redis 實例位於相同區域中的用戶端
在相同的區域中找出您的 Redis 實例和應用程式。 連線到不同區域中的 Redis 可大幅增加延遲並降低可靠性。
雖然您可以從 Azure 外部連線,但不建議使用 Redis 來加速應用程式或資料庫效能。 如果您使用 Redis 伺服器只是索引鍵/值存放區,延遲可能不是主要考慮。
依賴主機名稱而非公用 IP 位址
指派給AMR實例的公用IP位址可能會因為調整作業或後端改善而變更。 我們建議依賴主機名稱,而不是明確的公用 IP 位址。
使用 TLS 加密
Azure 受控 Redis 預設需要 TLS 加密的通訊。 目前支援 TLS 1.2 和 1.3 版。 如果您的用戶端連結庫或工具不支援 TLS,則可以啟用未加密的連線。
監視記憶體使用量、CPU 使用量計量、用戶端連線和網路頻寬
在生產環境中使用 Azure 受控 Redis 實例時,建議設定「已使用記憶體百分比」、「CPU」計量、「已連線用戶端」的警示。 如果這些計量一直高於75%,請考慮將您的實例調整為更大的記憶體或更好的輸送量層級。 如需詳細資訊,請參閱 何時調整 規模。
請考慮啟用數據持續性或數據備份
Redis 預設是針對暫時數據所設計,這表示在罕見的情況下,您的數據可能會因為維護或中斷等各種情況而遺失。 如果您的應用程式對數據遺失很敏感,建議您使用數據匯出作業來啟用數據持續性或定期數據備份。
數據 持續性 功能的設計目的是在快取關閉時自動提供數據的快速恢復點。 藉由將 RDB 或 AOF 檔案儲存在掛接至快取執行個體的受控磁碟中,即可進行快速復原。 磁碟上的持續性檔案無法供使用者存取,或無法供任何其他AMR實例使用。
許多客戶都想利用持續性定期備份其快取上的資料。 我們不建議以這種方式使用資料持續性。 此時應使用匯入/匯出功能。 您可以將 RDB 格式的數據復本直接匯出到您選擇的記憶體帳戶,並視需要觸發數據導出的頻率。 然後,此導出的數據可以匯入任何 Redis 實例。 您可以從入口網站或使用 CLI、PowerShell 或 SDK 工具觸發匯出作業。
用戶端程式庫特定的指引
如需詳細資訊,請參閱 Azure 受控 Redis 用戶端連結庫