引擎版本 - Amazon MemoryDB

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

引擎版本

本節涵蓋支援的 Valkey 和 Redis OSS引擎版本。

MemoryDB 7.2.6 版

2024 年 10 月 8 日,Valkey 7.2.6 發行。Valkey 7.2.6 與舊版 Redis 7.2.5 OSS 具有類似的相容性差異。以下是 Valkey 和 Redis 7.0 OSS 和 7.1 的主要差異:

  • ZRANK 和 ZREVRANK命令的新WITHSCORE選項

  • CLIENT NO-TOUCH 可讓用戶端在不影響 LRU/LFU 金鑰的情況下執行命令。

  • 根據複寫,CLUSTERMYSHARDID將節點的碎片 ID 傳回至叢集模式中邏輯分組節點的新命令。

  • 各種資料類型的效能和記憶體最佳化。

以下是 Valkey 7.2 和 Redis OSS 7.1 (或 7.0) 之間可能中斷的行為變更:

  • PUBLISH 使用同時訂閱相同頻道的RESP3用戶端呼叫 時,順序會變更,並在發佈的訊息之前傳送回覆。

  • 指令碼的用戶端追蹤現在會追蹤指令碼讀取的金鑰,而不是 / EVAL 的呼叫者宣告的金鑰FCALL。

  • 凍結時間取樣會在命令執行期間和指令碼中發生。

  • 解除封鎖命令時,會重新評估 ACL、 OOM等檢查和其他檢查。

  • ACL 失敗錯誤訊息文字和錯誤代碼統一。

  • 當金鑰不再存在時所釋出的封鎖串流命令,會攜帶不同的錯誤碼 (-NOGROUP 或 -WRONGTYPE 而非 -UNBLOCKED)。

  • 只有在命令實際執行時,才會針對封鎖的命令更新命令統計資料。

  • ACL 使用者的內部儲存不再移除備援命令和類別規則。這可能會改變這些規則在 SAVE、 ACL ACLGETUSER和 ACL 中顯示的方式LIST。

  • 如果可能SNI,為 TLS型複寫使用而建立的任何用戶端連線。

  • XINFO STREAM:看到的時間回應欄位現在表示上次嘗試的互動,而不是上次成功的互動。新的作用中回應欄位現在表示上次成功的互動。

  • XREADGROUP 和 X【AUTO】CLAIM 會建立取用者,無論其是否能夠執行一些讀取/宣告。【TBD - 這裡的「它」是什麼?】

  • ACL 預設 LIST/ 中新建立的使用者集 sanitize-payload ACL 旗標GETUSER。

  • 除非成功,否則HELLO命令不會影響用戶端狀態。

  • NAN 回應會標準化為單一 nan 類型,類似於 inf 的目前行為。

如需 Valkey 的詳細資訊,請參閱 Valkey

如需 Valkey 7.2 版本的詳細資訊,請參閱 上的 Redis OSS 7.2.4 版本備註 (Valkey 7.2 包含從 Redis OSS到 7.2.4 版的所有變更) 和 Valkey 7.2 版本備註 GitHub。

MemoryDB 7.1 版 (增強版)

MemoryDB 7.1 版新增了對所有區域中向量搜尋功能的支援,以及關鍵錯誤修正和效能增強功能。

  • 向量搜尋功能:向量搜尋可與現有的 MemoryDB 功能搭配使用。不使用向量搜尋的應用程式不會受到其存在的影響。向量搜尋可在 MemoryDB 7.1 版之後在所有 區域中使用。如需詳細資訊,請參閱此處的文件。

注意

MemoryDB 7.1 版與 Redis 7.0 OSS版相容。如需 Redis OSS 7.0 版本的詳細資訊,請參閱 上的 Redis OSS 7.0 版本備註OSS GitHub。

MemoryDB 7.0 版 (增強版)

MemoryDB 7.0 新增了許多改進和對新功能的支援:

  • 函數:MemoryDB 7 新增對函數的支援,並提供受管體驗,讓開發人員可以使用儲存在 MemoryDB 叢集上的應用程式邏輯執行LUA指令碼,而無需用戶端透過每個連線重新將指令碼傳送至伺服器。

  • ACL 改進:MemoryDB 7 新增對下一版本存取控制清單 () 的支援ACLs。使用 MemoryDB OSS Valkey 7 或 Redis OSS 7,用戶端現在可以在特定金鑰或金鑰空間上指定多組許可。

  • Sharded Pub/Sub :MemoryDB 7 新增了執行 Pub/Sub functionality in a sharded way when running MemoryDB in Cluster Mode Enabled (CME). Pub/Sub 功能的支援,可讓發佈者向頻道上任何數量的訂閱者發出訊息。使用 Amazon MemoryDB Valkey 7 和 Redis OSS 7 頻道,即可繫結至 MemoryDB 叢集中的碎片,因此不需要將頻道資訊傳播到碎片。這可改善可擴展性。

  • 增強型 I/O 多工處理:MemoryDB Valkey 7 和 Redis 第 7 OSS版引入增強型 I/O 多工處理,可為與 MemoryDB 叢集具有許多並行用戶端連線的高輸送量工作負載提供更高的輸送量和更低的延遲。例如,使用 r6g.4xlarge 節點叢集並執行 5200 個並行用戶端時,相較於 MemoryDB 第 6 版,您可以實現增加高達 46% 的輸送量 (每秒的讀取和寫入操作) 和降低高達 21% 的 P99 延遲。

如需 Valkey 的詳細資訊,請參閱 Valkey

如需 Valkey 7.2 版本的詳細資訊,請參閱 上的 Redis OSS 7.2.4 版本備註 (Valkey 7.2 包含從 Redis OSS到 7.2.4 版的所有變更) 和 Valkey 7.2 版本備註 GitHub。

MemoryDB 搭配 Redis 6.2 OSS版 (增強版)

MemoryDB 推出下一個版本的 Redis OSS引擎,包括 使用存取控制清單驗證使用者 (ACLs)、自動版本升級支援、用戶端快取和重大的操作改進。

Redis 引擎 6.2.6 版也推出對原生 JavaScript Object Notation (JSON) 格式的支援,這是一種簡單、無結構描述的方式,可編碼 Redis OSS叢集內的複雜資料集。透過 JSON支援,您可以OSSAPIs為透過 操作的應用程式利用 和 Redis 的效能JSON。如需詳細資訊,請參閱入門 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 版本的詳細資訊,請參閱 OSS上的 Redis 6.2 版本備註 GitHub。

升級引擎版本

根據預設,MemoryDB 會透過服務更新自動管理執行中叢集的修補程式版本。如果您將叢集的 AutoMinorVersionUpgrade 屬性設定為 false,還可以選擇不進行自動次要版本升級。不過,您無法選擇退出自動修補版本升級。

您可以在自動升級開始之前,控制為叢集供電的通訊協定相容軟體是否和何時升級至 MemoryDB 支援的新版本。這一層控制可讓您維持特定版本的相容性、在部署至生產環境前先利用您的應用程式測試新版本,並根據自己的期限和時間表執行版本升級。

您也可以從具有 Redis OSS引擎的現有 MemoryDB 升級到 Valkey 引擎。

您可以透過下列方式啟動叢集的引擎版本升級:

注意下列事項:

  • 您可以升級到更新版本的引擎,但無法降級到舊版引擎。如果您要使用舊版引擎,您必須刪除現有的叢集,並使用舊版引擎重新建立一個。

  • 建議您定期升級至最新主要版本,因為大部分主要改進功能不會向後移植至舊版。隨著 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 修改叢集版本升級 AWS CLI,API並指定較新的引擎版本。如需詳細資訊,請參閱下列主題。

解決遭封鎖的 Redis OSS引擎升級

如下表所示,如果您有待處理的擴展操作,則會封鎖 Redis OSS引擎升級操作。

待定作業 封鎖的作業
向上擴展 立即升級引擎
引擎升級 立即向上擴展
向上擴展與升級引擎 立即向上擴展
立即升級引擎