本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
引擎版本
本節涵蓋支援的 Valkey 和 Redis OSS 引擎版本。
主題
MemoryDB 7.3 版
2024 年 12 月 1 日,MemoryDB 7.3 發行。MemoryDB 7.3 版支援多區域叢集,可讓您建置多區域應用程式,可用性高達 99.999%,且延遲極低。下列 AWS 區域目前支援 MemoryDB 多區域:美國東部 (維吉尼亞北部和俄亥俄)、美國西部 (奧勒岡北部、加利佛尼亞北部)、歐洲 (愛爾蘭、法蘭克福和倫敦) 和亞太區域 (東京、雪梨、孟買、首爾和新加坡)。如需詳細資訊,請參閱 MemoryDB 多區域。
MemoryDB 7.2.6 版
2024 年 10 月 8 日,Valkey 7.2.6 發行。Valkey 7.2.6 與舊版 Redis OSS 7.2.5 有類似的相容性差異。以下是 Valkey 和 Redis OSS 7.0 和 7.1 的主要差異:
ZRANK 和 ZREVRANK 命令的新 WITHSCORE 選項
CLIENT NO-TOUCH 可讓用戶端執行命令,而不會影響金鑰的 LRU/LFU。
新的命令 CLUSTER MYSHARDID,其會根據複寫,將節點的碎片 ID 傳回至叢集模式中邏輯分組節點。
各種資料類型的效能和記憶體最佳化。
以下是 Valkey 7.2 和 Redis OSS 7.1 (或 7.0) 之間可能中斷的行為變更:
使用同時訂閱相同頻道的 RESP3 用戶端呼叫 PUBLISH 時,順序會變更,並在發佈的訊息之前傳送回覆。
指令碼的用戶端追蹤現在會追蹤指令碼讀取的金鑰,而不是 EVAL / FCALL 發起人宣告的金鑰。
凍結時間取樣會在命令執行期間和指令碼中發生。
解除封鎖命令時,會重新評估 ACL、OOM 等檢查。
ACL 失敗錯誤訊息文字和錯誤代碼已統一。
當金鑰不再存在時所釋出的封鎖串流命令,會攜帶不同的錯誤碼 (-NOGROUP 或 -WRONGTYPE,而非 -UNBLOCKED)。
只有在命令實際執行時,才會針對封鎖的命令更新命令統計資料。
ACL 使用者的內部儲存不再移除備援命令和類別規則。這可能會改變這些規則在 ACL SAVE、ACL GETUSER 和 ACL LIST 中顯示的方式。
任何為 TLS 型複寫建立的用戶端連線,如果可能,都會使用 SNI。
XINFO STREAM:可見時間回應欄位現在表示上次嘗試的互動,而不是上次成功的互動。新的作用中時間回應欄位現在表示上次成功的互動。
XREADGROUP 和 X【AUTO】CLAIM 會建立消費者,無論其是否能夠執行一些讀取/宣告。
ACL LIST/GETUSER 中的 ACL 預設新建立的使用者集 sanitize-payload 旗標。
除非成功,HELLO 命令不會影響用戶端狀態。
NAN 回應會標準化為單一 nan 類型,類似於 inf 的目前行為。
如需 Valkey 的詳細資訊,請參閱 Valkey
如需 Valkey 7.2 版本的詳細資訊,請參閱 GitHub 上 Valkey 的 Redis OSS 7.2.4 版本備註
MemoryDB 7.1 版 (增強版)
MemoryDB 7.1 版新增支援所有區域中的向量搜尋功能,以及重要的錯誤修正和效能增強功能。
注意
MemoryDB 7.1 版與 Redis OSS 7.0 版相容。如需 Redis OSS 7.0 版本的詳細資訊,請參閱 GitHub 上 Redis OSS 的 Redis OSS 7.0 版本備註
MemoryDB 7.0 版 (增強版)
MemoryDB 7.0 新增了許多改善和對新功能的支援:
-
函數
:MemoryDB 7 新增對函數的支援,並提供受管體驗,讓開發人員能夠使用儲存在 MemoryDB 叢集上的應用程式邏輯執行 LUA 指令碼 ,而無需用戶端在每次連線時重新將指令碼傳送至伺服器。 -
ACL 改善
:MemoryDB 7 新增對下一版本存取控制清單 (ACLs的支援。使用 MemoryDB OSS Valkey 7 或 Redis OSS 7,用戶端現在可以在特定金鑰或金鑰空間上指定多組許可。 -
碎片 Pub/Sub
:MemoryDB 7 新增支援,以在啟用叢集模式 (CME) 執行 MemoryDB 時,以碎片方式執行 Pub/Sub 功能。Pub/Sub 功能可讓發佈者向頻道上任何數量的訂閱者發出訊息。使用 Amazon MemoryDB Valkey 7 和 Redis OSS 7 頻道,會繫結至 MemoryDB 叢集中的碎片,因此不需要在碎片之間傳播頻道資訊。這可改善可擴展性。 -
增強型 I/O 多工:MemoryDB Valkey 7 和 Redis OSS 第 7 版推出增強型 I/O 多工,可為與 MemoryDB 叢集具有許多並行用戶端連線的高輸送量工作負載提供更高的輸送量和更低的延遲。例如,使用 r6g.4xlarge 節點叢集並執行 5200 個並行用戶端時,相較於 MemoryDB 第 6 版,您可以實現高達 46% 的輸送量 (每秒讀取和寫入操作) 和高達 21% 的 P99 延遲。
如需 Valkey 的詳細資訊,請參閱 Valkey
如需 Valkey 7.2 版本的詳細資訊,請參閱 GitHub 上位於 Valkey 的 Redis OSS 7.2.4 版本備註
MemoryDB 搭配 Redis OSS 6.2 版 (增強版)
MemoryDB 推出下一個版本的 Redis OSS 引擎,其中包括 使用存取控制清單 (ACLs) 驗證使用者、自動版本升級支援、用戶端快取和重大的操作改進。
Redis 引擎 6.2.6 版也推出原生 JavaScript 物件標記 (JSON) 格式的支援,這是一種簡單、無結構描述的方式,可編碼 Redis OSS 叢集內的複雜資料集。透過 JSON 支援,您可以為透過 JSON 操作的應用程式利用效能和 Redis OSS APIs。如需詳細資訊,請參閱JSON 入門。也包含與 JSON 相關的指標JsonBasedCmds
,該指標會併入 CloudWatch 中,以監控此資料類型的使用情況。如需詳細資訊,請參閱MemoryDB 的指標。
透過 Redis OSS 6,MemoryDB 將為每個 Redis OSS 次要版本提供單一版本,而不是提供多個修補程式版本。這旨在最大限度地減少必須從多個次要版本中選擇的混淆和模棱兩可的情況。MemoryDB 也會自動管理您執行中叢集的次要和修補程式版本,以確保效能改善和安全性增強。這將透過服務更新行銷活動的標準客戶通知管道來處理。如需詳細資訊,請參閱MemoryDB 中的服務更新。
如果您在建立期間未指定引擎版本,MemoryDB 會自動為您選取偏好的 Redis OSS 版本。另一方面,如果您使用 指定引擎版本6.2
,MemoryDB 會自動叫用可用的 Redis OSS 6.2 偏好修補程式版本。
例如,當您建立叢集時,請將 --engine-version
參數設定為 6.2
。叢集將在建立時以目前可用的偏好修補程式版本啟動。任何具有完整引擎版本值的請求都會遭到拒絕、擲回例外狀況,而且程序將會失敗。
呼叫 DescribeEngineVersions
API 時,EngineVersion
參數值會設為 6.2,而實際的完整引擎版本會在 EnginePatchVersion
欄位中傳回。
如需 Redis OSS 6.2 版本的詳細資訊,請參閱 GitHub 上 Redis OSS 的 Redis 6.2 版本備註
升級引擎版本
MemoryDB 預設會透過服務更新自動管理執行中叢集的修補程式版本。如果您將叢集的 AutoMinorVersionUpgrade
屬性設定為 false,還可以選擇不自動次要版本升級。不過,您無法選擇退出自動修補版本升級。
您可以在自動升級開始之前,控制為叢集供電的通訊協定相容軟體是否和何時升級至 MemoryDB 支援的新版本。這一層控制可讓您維持特定版本的相容性、在部署至生產環境前先利用您的應用程式測試新版本,並根據自己的期限和時間表執行版本升級。
您也可以從具有 Redis OSS 引擎的現有 MemoryDB 升級到 Valkey 引擎。
您可以透過下列方式啟動對叢集的引擎版本升級:
透過更新它並指定新的引擎版本。如需詳細資訊,請參閱修改 MemoryDB 叢集。
套用對應引擎版本的服務更新。如需詳細資訊,請參閱MemoryDB 中的服務更新。
注意下列事項:
您可以升級到更新版本的引擎,但無法降級到舊版引擎。如果您要使用舊版引擎,您必須刪除現有的叢集,並使用舊版引擎重新建立一個。
建議您定期升級至最新主要版本,因為大部分主要改進功能不會向後移植至舊版。隨著 MemoryDB 將可用性擴展到新 AWS 區域,MemoryDB
MAJOR.MINOR
此時支援新區域的兩個最新版本。例如,如果新 AWS 區域啟動且最新的MAJOR.MINOR
MemoryDB 版本為 7.0 和 6.2,MemoryDB 將在新 AWS 區域中支援 7.0 和 6.2 版。隨著較新MAJOR.MINOR
版本的 MemoryDB 發行,MemoryDB 將繼續為新發行的 MemoryDB 版本新增支援。若要進一步了解如何選擇 MemoryDB 的區域,請參閱 支援的區域和端點。引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,不過,MemoryDB 保留在系統或軟體發生重大安全漏洞時,代表您修補叢集的權利。
MemoryDB 將為每個 Valkey 或 Redis OSS 次要版本提供單一版本,而不是提供多個修補程式版本。這旨在最大限度地減少必須從多個版本中選擇的混淆和模棱兩可的情況。MemoryDB 也會自動管理您執行中叢集的次要和修補程式版本,以確保效能改善和安全性增強。這將透過服務更新行銷活動的標準客戶通知管道來處理。如需詳細資訊,請參閱MemoryDB 中的服務更新。
您可以使用最短的停機時間來升級叢集版本。叢集在整個升級過程中都可供讀取,而在過程的多數時間也可供寫入,除了在容錯移轉操作中會有幾秒可能無法寫入。
-
我們建議您在低傳入寫入流量期間執行引擎升級。
具有多個碎片的叢集處理和修補方式如下:
-
任何時間每個碎片只會執行一個升級操作。
-
在每個碎片中,都會先處理所有複本,再處理主要複本。如果某個碎片中的複本較少,則該碎片中的主要複本可能會在其他碎片的複本處理完成前就已處理。
-
跨所有碎片時,則會循序處理主要節點。一次只會升級一個主要節點。
-
如何升級引擎版本
您可以使用 MemoryDB 主控台、 或 MemoryDB API 來修改叢集的版本升級 AWS CLI,並指定較新的引擎版本。如需詳細資訊,請參閱下列主題。
解決遭封鎖的 Redis OSS 引擎升級
如下表所示,如果您有待處理的擴展操作,則會封鎖 Redis OSS 引擎升級操作。
待定作業 | 封鎖的作業 |
---|---|
向上擴展 | 立即升級引擎 |
引擎升級 | 立即向上擴展 |
向上擴展與升級引擎 | 立即向上擴展 |
立即升級引擎 |