全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):【通知】Redis® 4.0相容版服務生命週期結束(EOS)

更新時間:Nov 22, 2025

為了聚焦資源以提供更先進、更安全的產品版本,Tair (Redis OSS-compatible)的相容Redis® 4.0版本執行個體計划進入生命週期結束(EOS)階段。服務終止日期為新加坡時間2026年09月25日,請儘快升級執行個體至高版本。

關鍵時間軸與影響

關鍵節點

日期(新加坡時間)

影響說明

停止新購

2025年10月25日

停止新購服務及產品功能迭代(包括新功能和安全補丁)。

停止續約與變更配置

2026年03月25日

停止續約和升、降配服務。已生效的服務,繼續服務至EOS計劃的終止日期。

終止服務

2026年09月25日

不再提供該產品有關的文檔、資料存放區、以及支援人員服務。

行動建議

在升級大版本或者複製至Redis 5.0前,需要確保資料庫中沒有Bloom類型資料,否則會報錯。

如何排查並刪除4.0執行個體中的Bloom類型資料?

由於早期的存量4.0版本執行個體中,布隆過濾器相關API處於未正式開放的狀態,後續的大版本執行個體中已取消支援,因此在執行個體升級之前,建議先排查並刪除Bloom類型資料。

Python3

  1. 複製代碼至可串連執行個體的裝置上,命名為bloom_find.py

    import sys
    
    import redis
    
    
    def main(argv):
        if len(argv) < 3:
            print("Usage: python bloom_find.py host port password")
            sys.exit(-1)
    
        host = argv[1]
        port = argv[2]
        password = argv[3]
        print("host: %s, port: %s, password: %s\n" % (host, port, password))
    
        for i in range(256):
            redis_cli = redis.StrictRedis(host=host, port=port, password=password, db=i)
            cursor = 0
            print("Start scanning db %d" % i)
            while True:
                cursor, keys = redis_cli.scan(cursor=cursor, count=1000)
                if keys:
                    for key in keys:
                        key_type = redis_cli.type(key).decode()
                        if key_type == "unknown":
                            print("Found unknown type key(maybe bloom): %s in db %d" % (key.decode(), i))
                if cursor == 0:
                    break
    
    if __name__ == '__main__':
        main(sys.argv)
    
  2. 執行命令安裝redis-py:pip install redis

  3. 執行指令碼檢測是否存在Bloom類型資料:python bloom_find.py <host> <port> <password>

  4. 控制台日誌若列印存在Bloom類型資料,可使用UNLINK命令刪除。

Python2

  1. 複製代碼至可串連執行個體的裝置上,命名為bloom_find.py

    import sys
    
    import redis
    
    
    def main(argv):
        if len(argv) < 3:
            print("Usage: python bloom_find.py host port password")
            sys.exit(-1)
    
        host = argv[1]
        port = argv[2]
        password = argv[3]
        print("host: %s, port: %s, password: %s\n" % (host, port, password))
    
        for i in range(256):
            redis_cli = redis.StrictRedis(host=host, port=port, password=password, db=i)
            cursor = 0
            print("Start scanning db %d" % i)
            while True:
                cursor, keys = redis_cli.scan(cursor=cursor, count=1000)
                if keys:
                    for key in keys:
                        key_type = redis_cli.type(key)
                        if key_type == "unknown":
                            print("Found unknown type key(maybe bloom): %s in db %d" % (key, i))
                if cursor == 0:
                    break
    
    if __name__ == '__main__':
        main(sys.argv)
    
  2. 執行命令安裝redis-py:pip2 install redis

  3. 執行指令碼檢測是否存在Bloom類型資料:python2 bloom_find.py <host> <port> <password>

  4. 控制台日誌若列印存在Bloom類型資料,可使用UNLINK命令刪除。

  • 升級大版本:建議您升級至5.0版本。5.0版本完全向下相容4.0的命令,並在主備複製、持久化等方面均有大幅改進,同時支援了更多新特性。

    背景升級任務執行流程:

    1. 先升級備庫,此時主庫仍可以正常讀寫。

    2. 備庫升級完成後可進行主備切換。主備切換時間以您在升級操作時指定的為準(立即執行或在可維護時間內執行)。主備切換期間,執行個體將存在60秒以內的唯讀狀態(等待資料完全同步),同時會發生秒級的串連閃斷,請您確保業務具有重連機制。

      說明

      升級完成後:

      • 原執行個體的執行個體ID、串連地址、資料、白名單配置以及已建立的帳號密碼配置等均不會改變

      • 5.0版本剔除了主備同步的流量,僅計算實際業務流量,故執行個體監控資訊中的出口流量使用率有所降低

      • 執行個體串連數總量由10,000提升至20,000,執行個體監控資訊中的串連數使用率降低一半

      • 5.0版本因增強監控能力會帶來輕微的CPU開銷。同時,版本間的底層差異也可能導致CPU使用率小幅波動(或升或降),這屬於正常現象。

  • 複製至 Redis 5.0:若您希望基於當前業務在5.0中進行驗證,可以先複製一個新執行個體。

常見問題

  • Q:現有的相容4.0版本執行個體是否會自動升級到新版本?

    不會自動升級。2026年09月25日後,如果仍在使用4.0版本,執行個體將被關停,建議手動升級大版本

  • Q:高版本支援哪些命令?

    Tair (Redis OSS-compatible)對高版本的資料結構和API進行了充分的相容性迴歸測試,更多資訊請參見命令支援

  • Q:升級前,如何測試相容性?

    您可以將相容 Redis® 4.0 版本執行個體的備份資料複製至新5.0執行個體中。

    新執行個體配置時,選擇版本為5.0,同時您可以選擇隨用隨付方式,以更低的成本進行測試與驗證,驗證後可釋放執行個體以節約資源。

相關文檔

Redis開源版大版本新特性與相容性