Situation: Need to upgrade Redis 3.2 to the latest stable version in a 3 server and 3 sentinel architecture with a plan for rollback to the previous state in case of any issue without data loss and downtime.
Findings: Rollback is problematic because the RDB version mismatched as 3.2 uses RDB 7 and doesn't support RDB 9 which is supported by the newer versions. Now, under this, there are 2 problems. 1. Starting the server without data loss as rollback will downgrade redis version from 6.0.8 to 3.2 and RDB 9 is not supported by 3.2. (This can be solved by using RDB +AOF as redis will load data from AOF file if its enabled) 2. So my main question is how to sync 3.2 version redis slave with the newer version of redis master ? Is there a way to handle this situation gracefully !!
Also, any other heads up with this upgrade/rollback is more than welcome as well! Thanks in advance. :)
Comment From: oranagra
This is complicated. There are some tools that can convert rdb files to plain commands, so these can then be redirected to an old server successfully. I'm not recall following any so you'll have to experiment. I think https://github.com/sripathikrishnan/redis-rdb-tools has something but it might be outdated. Maybe this one is useful: https://github.com/redis-developer/riot Feel free to report your findings, it may be useful for others.