Redis 8.6 RDB format 13 → Valkey 9.1 migration without data loss #4848
Replies: 1 comment
|
i checked the valkey 9.1 source on this: rdb versions 12 to 79 are reserved as foreign formats, redis 8.6 writes 13, and the version check is strict with no toggle. so the rdb file path is fully dead, and since you cant ship the 8.6 binary either, logical export is the only way through. your proposed flow is the right shape: export everything logically while 8.6 is still running, stash it on the pv, upgrade the image, import into valkey. redis-shake in scan mode does this over the wire without touching the rdb file. a dump/restore loop per key also works and keeps ttls and binary values intact. two things to watch with your dataset: streams and hash field expirations need a tool that understands them, naive get/set copies will silently drop that metadata. and search module indexes wont transfer at all, plan to rebuild those after the import. verify with key counts plus spot checks on each data type before you cut over. |
Uh oh!
There was an error while loading. Please reload this page.
Hi Valkey community,
We are migrating an existing deployment from Redis 8.6 to Valkey 9.1 and are looking for the recommended way to safely migrate the persisted data.
Current setup
The persisted database is therefore:
During a normal restart, Redis loads this RDB from the PV and restores the dataset.
During the Redis → Valkey upgrade, Valkey sees the same persisted RDB but fails during startup with:
We understand that Redis CE 7.4+ persistence files are not directly compatible with Valkey.
Important constraint
We cannot package or ship the Redis 8.6 server binary together with the Valkey image due to security/compliance restrictions.
Therefore, an approach where Valkey starts a temporary Redis 8.6 server to read the old RDB is not suitable for us.
We need to preserve the existing data with effectively zero data loss during the upgrade.
Questions
What is the recommended migration strategy for this scenario?
In particular:
Is there an officially recommended way to convert a Redis 8.6 RDB v13 file into a Valkey 9.1-compatible RDB or another format that Valkey can import?
Is there any supported offline converter/tool that can read Redis RDB v13 and logically export the dataset?
Are third-party tools such as RedisShake, RIOT, redis-rdb-cli, or another migration utility recommended for Redis 8.6 → Valkey 9.1?
Would the recommended approach instead be to perform a logical export while Redis 8.6 is still running before the upgrade, store that export on the PV, and import it into Valkey after the image upgrade?
Conceptually:
If logical export/import is the recommended approach, what commands/protocol should be preferred to preserve:
Is there any known or planned Valkey version that can directly read Redis RDB format version 13?
Our main requirement is to perform the upgrade without silently losing or modifying persisted customer data.
Any recommended migration procedure, existing tooling, or examples would be very helpful.
All reactions