與 Redis OSS 的主要引擎版本行為和相容性差異 - Amazon ElastiCache

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

與 Redis OSS 的主要引擎版本行為和相容性差異

重要

以下頁面的結構目的是指出版本控制之間所有不相容的差異,並告知您升級至較新版本控制時應注意的事項。此清單包含您在升級時可能遇到的版本控制不相容問題。

您可以直接從目前的 Redis OSS 版本升級到最新的 Redis OSS 版本,而不需要循序升級。例如,您可以直接從 Redis OSS 3.0 版升級至 7.0 版。

Redis OSS 版本是以語意版本識別,該版本包含主要、次要和修補程式元件。例如,在 Redis OSS 4.0.10 中,主要版本為 4、次要版本為 0,而修補程式版本為 10。這些值一般會根據下列慣例遞增:

  • 主要版本適用於 API 不相容的變更

  • 次要版本適用於以回溯相容方式新增的新功能

  • 修補程式版本適用於回溯相容的錯誤修正和非功能變更

我們建議始終使用指定 major.minor 版本內的最新修補程式版本,以便獲得最新的效能和穩定性改進。從適用於 Redis OSS 的 ElastiCache 6.0 版開始,ElastiCache 將為每個 Redis OSS 次要版本提供單一版本,而不是提供多個修補程式版本。ElastiCache 會自動管理執行中快取叢集的修補程式版本,以確保效能提升和安全性提升。

同時建議您定期升級至最新主要版本,因為大部分主要改進功能並未向後移植至舊版。隨著 ElastiCache 將可用性擴展到新 AWS 區域,ElastiCache for Redis OSS 支援新區域的兩個最新 major.minor 版本。例如,如果新 AWS 區域啟動且 Redis OSS 的最新 major.minor ElastiCache 版本為 7.06.2,ElastiCache 將在新 AWS 區域中支援 Redis OSS 7.06.2 版。隨著 ElastiCache for Redis OSS 的較新 major.minor 版本發佈,ElastiCache 將繼續新增對新發行版本的支援。若要深入了解如何選擇 ElastiCache 的區域,請參閱選擇區域和可用區域

進行跨主要或次要版本的升級時,請考慮下列清單,其中包括隨時間透過 Redis OSS 發佈的行為和回溯不相容的變更。

Redis OSS 7.0 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 7.0 版本備註。

  • SCRIPT LOADSCRIPT FLUSH 不再傳播到複本。如果您需要一些指令碼的耐用性,建議您考慮使用 Redis OSS 函數

  • 根據預設,新 ACL 使用者現在會封鎖 Pubsub 頻道。

  • LCS 命令已取代 STRALGO 命令。

  • 已變更 ACL GETUSER 的格式,所有欄位皆會顯示標準存取字串模式。若您使用 ACL GETUSER 進行自動化,則應確認其能處理任一格式。

  • 已變更 SELECTWAITROLELASTSAVEREADONLYREADWRITEASKING 的 ACL 類別。

  • 現在,每個子命令的命令統計資料由 INFO 命令顯示,而非顯示於頂層容器命令。

  • 在部分邊緣情況下,LPOPRPOPZPOPMINZPOPMAX 命令的傳回值已變更。若您使用這些命令,則應確認版本備註,並評估您是否受到影響。

  • SORTSORT_RO 命令現在需存取整個金鑰空間,以使用 GETBY 引數。

Redis OSS 6.2 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 6.2 版本備註。

  • TIMEECHOROLELASTSAVE 命令的 ACL 旗標已變更。這可能會導致先前允許的命令遭拒,反之亦然。

    注意

    這些命令都不會修改或授予資料存取權。

  • 從 Redis OSS 6.0 升級時,從映射回應傳回至 lua 指令碼的鍵/值對順序會變更。如果您的指令碼使用或redis.setresp()傳回映射 (Redis OSS 6.0 的新功能),請考慮指令碼可能會在升級時中斷的影響。

Redis OSS 6.0 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 6.0 版本備註。

  • 允許的資料庫數量上限已從 120 萬降低至 1 萬。預設值為 16,我們不鼓勵使用大於此的值,因為發現效能和記憶體問題。

  • AutoMinorVersionUpgrade參數設定為是,ElastiCache 將透過自助式更新來管理次要版本升級。這將透過自助更新行銷活動,經由標準客戶通知管道來處理。如需詳細資訊,請參閱 ElastiCache 中的自助服務更新

Redis OSS 5.0 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 5.0 版本備註。

  • 指令碼是依效果複寫,而不是在複本上重新執行指令碼。這一般會改善效能,但可能會增加在主要項目和複本之間複寫的資料量。有一個選項可還原至先前的行為,僅適用於 ElastiCache 5.0 版的 Redis OSS。

  • 如果您是從 Redis OSS 4.0 升級,LUA 指令碼中的某些命令會以與舊版不同的順序傳回引數。在 Redis OSS 4.0 中,Redis OSS 會以語彙方式排序一些回應,以便使回應具有決定性,當指令碼依效果複寫時,不會套用此排序。

  • 在 Redis OSS 5.0.3 及更高版本中,ElastiCache for Redis OSS 會將某些 IO 工作卸載到執行個體類型上具有 4 個以上 VCPUs背景核心。這可能會變更 Redis OSS 的效能特性,並變更某些指標的值。如需詳細資訊,請參閱應監控哪些指標?,了解您是否需要變更您監控的指標。

Redis OSS 4.0 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 4.0 版本備註。

  • 慢速日誌現在會記錄另外兩個引數,即用戶端名稱和位址。除非您明確依賴每個包含 3 個值的慢速日誌項目,否則此變更應回溯相容。

  • CLUSTER NODES 命令現在會傳回略為不同的格式,不回溯相容。建議客戶不要使用此命令了解叢集中的節點,而應使用 CLUSTER SLOTS

過去的 EOL

Redis OSS 3.2 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 3.2 版本備註。

  • 此版本沒有需注意的相容性變更。

如需詳細資訊,請參閱適用於 Redis OSS 生命週期結束排程的 ElastiCache 版本

Redis OSS 2.8 行為和回溯不相容的變更

如需變更的完整清單,請參閱 Redis OSS 2.8 版本備註。

  • 從 Redis OSS 開始 2.8.22,ElastiCache for Redis OSS 不再支援 Redis OSS AOF。資料需要持久保存時,建議使用 MemoryDB。

  • 自 Redis OSS 2.8.22,ElastiCache for Redis OSS 不再支援將複本連接至 ElastiCache 內託管的 主要節點。升級時,外部複本將中斷連線,且無法重新連線。我們建議使用用戶端快取,在 Redis OSS 6.0 中提供,作為外部複本的替代方案。

  • 如果沒有金鑰,TTLPTTL 命令現在會傳回 -2,而如果有金鑰,但沒有關聯的過期,則傳回 -1。Redis OSS 2.6 和先前版本用於針對這兩種條件傳回 -1。

  • 如果不使用 STORE 選項,具 ALPHASORT 現在會根據地區定序設定排序。

如需詳細資訊,請參閱適用於 Redis OSS 生命週期結束排程的 ElastiCache 版本