View a markdown version of this page

耐用性選項 - Amazon ElastiCache

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

耐用性選項

ElastiCache for Valkey 提供兩種耐久性選項:同步和非同步寫入。

使用同步寫入時,成功的寫入操作會永久儲存在多可用區域交易日誌中,然後再傳回用戶端。這會產生單一位數毫秒寫入延遲,並確保在發生故障時不會遺失已確認的寫入操作。

使用非同步寫入時,成功的寫入操作會傳回給用戶端,然後再長期存放在多可用區域交易日誌中。由於寫入操作不會等待長期存放在多可用區域交易日誌中,因此寫入操作延遲等同於沒有耐用性的 ElastiCache。不過,如果發生故障,最高達最後 10 秒的成功寫入操作可能會遺失。

若要了解非同步寫入的潛在資料遺失,請考慮耐久性緩衝區的概念。耐久性緩衝區代表主節點已接受但尚未保留至多可用區域交易日誌的任何寫入的最長存留期。主節點會追蹤最舊未確認寫入的存留期。只要此存留期保持在 10 秒以下,節點就會繼續正常接受新的寫入。如果最舊未確認寫入的存留期超過 10 秒,主節點會拒絕所有傳入的寫入命令,直到追上為止。在此期間,繼續以微秒延遲提供讀取操作。保留待定寫入後,節點會自動繼續接受寫入。這可確保在發生故障時,潛在的資料遺失限制為 10 秒的寫入。

設定用戶端將流量傳送至非同步耐用叢集時,請確定用戶端會自動以指數退避的方式重試任何因叢集關閉錯誤訊息而被拒絕的寫入命令。如需設定用戶端以處理此錯誤和其他暫時性錯誤的指導方針,請參閱最佳實務:Valkey/Redis OSS 用戶端和 Amazon ElastiCache

顯示非同步耐久性緩衝區如何跨五種狀態運作的圖表:寫入進入緩衝區,交易日誌會保留它們,如果緩衝區超過 10 秒,則會拒絕新的寫入,直到日誌追上進度為止。

選擇耐久性選項

當您的應用程式在失敗期間無法容忍任何資料遺失時,請使用同步寫入。使用同步寫入時,除了無法接受資料遺失的快取之外,您還可以將 ElastiCache 用於更廣泛的使用案例,例如 RAG 應用程式的知識庫、AI 代理程式記憶體、AI 代理程式工作流程狀態、付款字符化、串流中繼資料、遊戲玩家狀態和即時庫存管理。

當您的應用程式優先考慮寫入效能,並且可以容忍在失敗期間高達 10 秒未遞交資料的潛在遺失時,請使用非同步寫入。此選項非常適合應用程式資料快取、工作階段存放區、遊戲排行榜和即時分析等工作負載。