All Products
Search
Document Center

Tair (Redis® OSS-Compatible):End of service (EOS) for the Redis® 4.0-compatible version

Last Updated:Jul 16, 2026

To focus our resources on providing more advanced and secure product versions, we are announcing the end of service (EOS) for instances of Tair (Redis OSS-compatible) that are compatible with Redis® 4.0. The service termination date is Singapore Time, September 25, 2026. Please upgrade your instances to a later version as soon as possible.

Key timeline and impact

Milestone

Date (Singapore Time)

Impact

End of new purchases

October 25, 2025

You can no longer create new Redis 4.0-compatible instances. Product iterations, including new features and security patches, will also cease.

End of renewals and configuration changes

March 25, 2026

You can no longer renew or modify the configuration of existing instances. Active instances will continue to run until the service termination date.

End of service

September 25, 2026

We will no longer provide documentation, data storage, or technical support for this product version.

Recommended actions

Before you perform a major version upgrade or clone an instance to Redis 5.0, you must ensure that your database does not contain any Bloom filter data. Otherwise, the operation will fail.

How to find and delete Bloom filter data from a 4.0 instance

The Bloom filter API in early Redis 4.0-compatible instances was unofficial and is not supported in later major versions. To prevent the upgrade from failing, you must find and delete all Bloom filter data from your instance beforehand.

Python 3

  1. Save the following code as bloom_find.py on a device that can connect to your instance.

    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 (might be a Bloom filter): %s in db %d" % (key.decode(), i))
                if cursor == 0:
                    break
    
    if __name__ == '__main__':
        main(sys.argv)
    
  2. Run the following command to install redis-py: pip install "redis>=4.0.0,<5.0.0".

  3. Run the script to check for Bloom filter data: python bloom_find.py <host> <port> <password>.

  4. If the console log finds Bloom filter data, delete it using the UNLINK command.

Python 2

  1. Save the following code as bloom_find.py on a device that can connect to your instance.

    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 (might be a Bloom filter): %s in db %d" % (key, i))
                if cursor == 0:
                    break
    
    if __name__ == '__main__':
        main(sys.argv)
    
  2. Run the following command to install redis-py: pip2 install redis.

  3. Run the script to check for Bloom filter data: python2 bloom_find.py <host> <port> <password>.

  4. If the console log finds Bloom filter data, delete it using the UNLINK command.

  • Perform a major version upgrade: We recommend upgrading to version 5.0. Version 5.0 is fully backward-compatible with version 4.0 commands and offers significant improvements, such as enhanced primary/standby replication, improved persistence, and many new features.

    Upgrade process:

    1. The system first upgrades the standby database. During this process, the primary database continues to handle read and write requests.

    2. After the standby database is upgraded, the system performs a primary/standby switchover. You can choose to perform the switchover immediately or Update During Maintenance. During the switchover, the instance is in read-only mode for up to 60 seconds to allow for full data synchronization. A brief connection interruption also occurs. Ensure that your application has a reconnection mechanism.

      Note

      After the upgrade is complete:

      • The upgrade does not change your instance ID, endpoints, data, IP address whitelist settings, or created accounts and passwords.

      • Version 5.0 excludes replication traffic between the primary and standby databases from traffic metrics. Only actual business traffic is measured. As a result, the outbound traffic usage metric in your instance's monitoring information will be lower.

      • The total number of connections for the instance increases from 10,000 to 20,000. As a result, the connection usage metric in your instance's monitoring information will decrease by half.

      • Version 5.0's enhanced monitoring capabilities may slightly increase CPU overhead. Additionally, minor fluctuations (either increases or decreases) in CPU utilization are normal due to underlying differences between the versions.

  • Clone an instance to Redis 5.0: To validate your application on version 5.0, clone the instance for testing.

FAQ

  • Q: Will my existing Redis 4.0-compatible instances be automatically upgraded to a new version?

    No. After September 25, 2026, we will shut down any remaining version 4.0 instances. We recommend that you manually perform a major version upgrade.

  • Q: What commands are supported in later versions?

    We run comprehensive regression tests for Tair (Redis OSS-compatible) to ensure its data structures and APIs remain compatible in later versions. For more information, see Commands supported by open source Redis.

  • Q: How can I test for compatibility before upgrading?

    You can clone data to a new instance that runs Redis 5.0 from a backup of your Redis® 4.0-compatible instance.

    When you configure the new instance, select version 5.0. You can also choose the pay-as-you-go billing method for low-cost testing and validation. After testing, you can release the instance to save resources.

Related documents

New features and compatibility of major versions