【通知】云数据库 Tair(兼容 Redis®)美国地域部分版本实例强制升级

云数据库 Tair(兼容 Redis)将对美国地域的基础管控服务进行升级。本次升级涉及不兼容更新,升级后将无法支持版本过旧的实例受影响实例需在指定时间前完成大版本升级。

  • 受影响产品:云数据库 Tair(兼容 Redis)

  • 受影响地域:美国(硅谷)、美国(弗吉尼亚)

  • 受影响实例版本:Redis 2.8、Redis 4.0

  • 生效时间:北京时间 2026115日 00:00 (UTC+8)

  • 行动建议及影响:

    • 行动建议:需在生效时间前将实例升级至 Redis 5.0 或更高版本

      说明

      升级完成后实例ID、连接地址、数据、白名单配置以及已创建的账号密码配置等均不会改变。

    • 影响:在生效时间之后,未升级的实例将在其运维窗口期内被自动升级。自动升级可能因版本不兼容而影响业务,请评估相关风险。

  • 升级注意事项:

    • 升级前,请参考Redis开源版大版本新特性与兼容性充分测试业务兼容性。

    • 5.0及之后版本不支持Redis Bloom数据结构,升级前建议先排查并删除实例中的Redis Bloom数据。

      排查实例中的Redis 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命令删除。