主要版本行為和相容性差異 - Amazon ElastiCache (雷迪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 6.0 開始, ElastiCache (Redis OSS) 將為每個 Redis 的 OSS 次要版本提供單一版本,而不是提供多個修補程式版本。 ElastiCache (Redis OSS) 會自動管理執行中快取叢集的修補程式版本,以確保改善效能並增強安全性

同時建議您定期升級至最新主要版本,因為大部分主要改進功能並未向後移植至舊版。 ElastiCache 隨著將可用性擴展到新 AWS 區域, ElastiCache (Redis OSS) 支援當時新區域的兩個最新 MAJOR.MIND 版本。例如,如果一個新的 AWS 區域啟動,而最新的主要版本 ElastiCache (Redis OSS) 版本為 7.0 和 6.2,則 ElastiCache (Redis OSS) 將在新區域中支援 7.0 和 6.2 版本。 AWS 隨著 ElastiCache (Redis OSS) 的較新版本發行, ElastiCache 將繼續增加對新發行 ElastiCache (Redis OSS) 版本的支援。若要深入了解如何選擇適用的區域 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參數設定為 yes,並且 ElastiCache (Redis OSS) 將透過自助式更新管理次要版本升級。這將透過自助更新行銷活動,經由標準客戶通知管道來處理。如需詳細資訊,請參閱 ElastiCache.

Redis 的 OSS 5.0 行為和向後不兼容的更改

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

  • 指令碼是依效果複寫,而不是在複本上重新執行指令碼。這一般會改善效能,但可能會增加在主要項目和複本之間複寫的資料量。有一個選項可以恢復到之前的行為,該行為僅在 ElastiCache (Redis OSS)5.0 中可用。

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

  • Inn Redis OSS 5.0.3 及更高版本 ElastiCache (Redis OSS)將將一些 IO 工作卸載到具有 4 個以上 vCPU 的實例類型上的後台核心。這可能會變更 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 版本的生命週期結束時間表

Redis 的 OSS 2.8 行為和向後不兼容的更改

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

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

  • 從 Redis OSS 2.8.22 開始, ElastiCache (Redis OSS) 不再支援將複本附加到託管在其中的主要項目。 ElastiCache升級時,外部複本將中斷連線,且無法重新連線。我們建議您使用 Redis OSS 6.0 中提供的用戶端快取作為外部複本的替代方案。

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

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

如需更多詳細資訊,請參閱 Redis 的 OSS 版本的生命週期結束時間表