本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
與 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.0 和 6.2,ElastiCache 將在新 AWS 區域中支援 Redis OSS 7.0 和 6.2 版。隨著 ElastiCache for Redis OSS 的較新 major.minor 版本發佈,ElastiCache 將繼續新增對新發行版本的支援。若要深入了解如何選擇 ElastiCache 的區域,請參閱選擇區域和可用區域。
進行跨主要或次要版本的升級時,請考慮下列清單,其中包括隨時間透過 Redis OSS 發佈的行為和回溯不相容的變更。
Redis OSS 7.0 行為和回溯不相容的變更
如需變更的完整清單,請參閱 Redis OSS 7.0 版本備註。
-
SCRIPT LOAD
與SCRIPT FLUSH
不再傳播到複本。如果您需要一些指令碼的耐用性,建議您考慮使用 Redis OSS 函數。 -
根據預設,新 ACL 使用者現在會封鎖 Pubsub 頻道。
-
LCS
命令已取代STRALGO
命令。 -
已變更
ACL GETUSER
的格式,所有欄位皆會顯示標準存取字串模式。若您使用ACL GETUSER
進行自動化,則應確認其能處理任一格式。 -
已變更
SELECT
、WAIT
、ROLE
、LASTSAVE
、READONLY
、READWRITE
和ASKING
的 ACL 類別。 -
現在,每個子命令的命令統計資料由
INFO
命令顯示,而非顯示於頂層容器命令。 -
在部分邊緣情況下,
LPOP
、RPOP
、ZPOPMIN
和ZPOPMAX
命令的傳回值已變更。若您使用這些命令,則應確認版本備註,並評估您是否受到影響。 -
SORT
和SORT_RO
命令現在需存取整個金鑰空間,以使用GET
和BY
引數。
Redis OSS 6.2 行為和回溯不相容的變更
如需變更的完整清單,請參閱 Redis OSS 6.2 版本備註。
-
TIME
、ECHO
、ROLE
和LASTSAVE
命令的 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 中提供,作為外部複本的替代方案。
-
如果沒有金鑰,
TTL
和PTTL
命令現在會傳回 -2,而如果有金鑰,但沒有關聯的過期,則傳回 -1。Redis OSS 2.6 和先前版本用於針對這兩種條件傳回 -1。 -
如果不使用
STORE
選項,具ALPHA
的SORT
現在會根據地區定序設定排序。
如需詳細資訊,請參閱適用於 Redis OSS 生命週期結束排程的 ElastiCache 版本。