雷迪斯 OSS 引擎版本 - Amazon MemoryDB

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

雷迪斯 OSS 引擎版本

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

記憶體資料庫 7.1 版 (增強版)

MemoryDB 7.1 版在特定區域的預覽中新增了對向量搜尋功能的支援,以及重大錯誤修正和效能增強功能。

  • 矢量搜索功能:矢量搜索可以與現有的 MemoryDB 功能一起使用。不使用向量搜尋的應用程式不會受到其存在的影響。MemoryDB 7.1 版以上的下列區域提供向量搜尋預覽:美國東部 (維吉尼亞北部和俄亥俄州)、美國西部 (奧勒岡)、歐洲 (愛爾蘭) 和亞太區域 (東京)。有關如何啟用向量搜尋預覽和相關功能,請參閱處的文件。

注意

內存數據庫 7.1 版與 Redis 的 OSS 版本 7.0 兼容。如需有關 Redis OSS 7.0 版本的詳細資訊,請參閱上的 Redis OSS 7.0 版本說明。 GitHub

記憶體 7.0 版 (增強版)

MemoryDB 7.0 增加了許多改進和新功能的支持:

  • Redis 的 OSS 函數:MemoryDB 7 增加了對 Redis OSS 函數的支援,並提供受管理的體驗,使開發人員能夠使用存儲在 MemoryDB 集群上的應用程序邏輯執行 LUA 腳本,而不需要客戶端重新發送腳本到服務器與每個連接。

  • ACL 改進:記憶體資料庫 7 增加了對 Redis 的 OSS 存取控制清單 (ACL) 的下一個版本的支援。使用 MemoryDB OSS 7,用戶端現在可以在 Redis OSS 中的特定金鑰或金鑰空間上指定多組權限。

  • 分片發布/訂閱:MemoryDB 7 增加了在啟用集群模式(CME)下運行 MemoryDB 時以分片方式運行 Redis OSS 發布/訂閱功能的支持。Redis OSS Pub/Sub 功能可讓發佈者向頻道上任意數量的訂閱者發送訊息。使用 Amazon MemoryDB OSS 7 時,通道會繫結至 MemoryDB 叢集中的碎片,因此無需在碎片之間傳播通道資訊。這會導致改進的可擴展性。

  • 增強的 I/O 多工處理:MemoryDB OSS 版本 7 引入了增強的 I/O 多工處理功能,可為具有許多並行用戶端連線至 MemoryDB 叢集的高輸送量工作負載提供更高的輸送量並減少延遲。例如,當使用 r6g.4xlarge 節點叢集並執行 5200 個並行用戶端時,與 MemoryDB 第 6 版相比,您最多可以增加 46% 的輸送量 (每秒讀取和寫入作業),而 P99 延遲最多可減少 21%。

如需有關 Redis OSS 7.0 版本的詳細資訊,請參閱上的 Redis OSS 7.0 版本說明。 GitHub

記憶體資料庫 6.2 版 (增強版)

MemoryDB 引進了 Redis OSS 引擎的下一個版本,其中包括自動版本升級支援使用存取控制清單 (ACL) 驗證使用者、用戶端快取和顯著的操作改進。

Redis 引擎 6.2.6 版也引入了對原生 JavaScript 物件表示法 (JSON) 格式的支援,這是一種簡單、無結構描述的方式,可在 Redis OSS 叢集內編碼複雜的資料集。透過 JSON 支援,您可以針對透過 JSON 操作的應用程式,運用效能和 Redis 作業系統 API。如需詳細資訊,請參閱 JSON 入門。此外,還包含 JSON 相關度量JsonBasedCmds,用於監視此資 CloudWatch 料類型的使用情況。如需詳細資訊,請參閱 記憶體資料庫的度量

使用 Redis OSS 6,MemoryDB 將為每個 Redis OSS 次要版本提供單一版本,而不是提供多個修補程式版本。這是為了最大限度地減少必須從多個次要版本中進行選擇時的混淆和歧義。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 版本的詳細資訊,請參閱上的 Redis 6.2 版本說明。 GitHub

升級引擎版本

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

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

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

注意下列事項:

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

  • 建議您定期升級至最新主要版本,因為大部分主要改進功能不會向後移植至舊版。隨著 MemoryDB 將可用性擴展到新的 AWS 區域,MemoryDB 支持當時的兩個最新MAJOR.MINOR版本的新區域。例如,如果新 AWS 區域啟動,而最新的MAJOR.MINOR記憶體資料庫版本為 7.0 和 6.2,則 MemoryDB 將在新區域中支援 7.0 和 6.2 版本。 AWS 隨著新MAJOR.MINOR版本的 MemoryDB 發布,MemoryDB 將繼續添加對新發布的內存數據庫版本的支持。若要進一步瞭解如何選擇 MemoryDB 區域,請參閱。支援的地區和端點

  • 引擎版本管理功能是為了讓您能夠盡可能控制執行修補的方式,但是,MemoryDB 保留在系統或軟件出現嚴重安全漏洞的情況下代表您修補叢集的權利。

  • MemoryDB 將為每個 Redis OSS 次要版本提供單一版本,而不是提供多個修補程式版本。這是為了最大限度地減少必須從多個版本中進行選擇時的混淆和歧義。MemoryDB 還將自動管理正在運行的集群的次要版本和修補程序版本,以確保提高性能和增強的安全性。這將透過標準的客戶通知管道,透過服務更新行銷活動來處理。如需詳細資訊,請參閱 記憶體資料庫中的服務更新

  • 您可以在最短的停機時間內升級叢集版本。叢集在整個升級過程中都可供讀取,而在過程的多數時間也可供寫入,除了在容錯移轉操作中會有幾秒可能無法寫入。

  • 建議您在低傳入寫入流量期間執行引擎升級。

    具有多個碎片的簇被處理和修補,如下所示:

    • 每個碎片隨時只會執行一個升級作業。

    • 在每個碎片中,都會先處理所有複本,再處理主要複本。如果某個碎片中的複本較少,則該碎片中的主要複本可能會在其他碎片的複本處理完成前就已處理。

    • 跨所有碎片時,則會循序處理主要節點。一次只會升級一個主要節點。

如何升級引擎版本

您可以使用 MemoryDB 主控台、或 MemoryDB API 修改叢集,並指定較新的引擎版本 AWS CLI,以啟動叢集的版本升級。如需詳細資訊,請參閱下列主題。

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

如下表所示,如果您有擱置的擴充作業,則會封鎖 Redis OSS 引擎升級作業。

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