Skip to content

From Redis Cloud

Tested with: Generic connection-string flow · zb migrate 0.1 · no Redis Cloud preset yet

Redis Cloud databases move to Databasezy Valkey, either by copying keys over a connection string or by uploading an RDB export. Redis (compat) is a second target once it launches.

Redis Cloud migration at a glance, from the migration source catalogue
Status Coming soon · phase 2
Target engines Valkey , Redis (compat)
How we read it Connection string, File upload
Continuous sync No, copy only
Provider preset None yet (generic)
  • A Databasezy Valkey instance, or use --create.
  • The database’s public endpoint and password, or an RDB export file.
  • A list of the Redis modules your application uses.

In the Redis Cloud console, open the database and copy its public endpoint and the default user’s password. Use rediss:// if TLS is enabled on the database, redis:// otherwise. To use a file instead, export the database to your own storage bucket from the console and upload the .rdb:

shell
zb migrate --from ./redis-cloud-export.rdb --engine valkey --create
  • Modules (RediSearch, RedisJSON) are not part of Valkey; the preflight lists keys that use them.

Data types from modules (search indexes, JSON documents, time series, probabilistic structures) cannot be restored on Valkey; plan their replacement before cutover.

  1. Open the target Valkey instance (create one first if you need to) and choose the Migrate in tab.
  2. Under Source, pick Connection string and paste the URL.
  3. Run Preflight and work through the checklist. Blocking items must be fixed before the copy starts.
  4. Start the copy and follow Copy and Verify. Mismatches are listed per table or collection.
  5. Point your application at the new instance. The Report step keeps the timings and verification results.

Verification compares the key count on both sides once the copy finishes. Spot-check a few keys you know, including their TTLs (PTTL <key>), and run your application against the new instance before you switch traffic.

This source is copy only. Writes that reach the source after the copy starts are not carried over, so for a database that changes, stop writes before you start the copy (maintenance mode, or scale writers to zero), run the migration, check verification, then point the application at the Databasezy connection string.

A migration never deletes anything on the source. Until you decommission it, rolling back means pointing the application back at the source. Writes made on Databasezy after you switched are not on the source; if you need them, copy them back before switching. Cancel a running migration with zb migrate cancel <mig_id>; partially restored data stays on the target, so restart with --drop-target or delete the instance.

RESTORE fails with a payload or version error

Section titled “RESTORE fails with a payload or version error”

The source runs a newer Redis release whose serialization format Valkey does not read. Preflight reports the source version; contact support before you plan a cutover.

They are listed by preflight and skipped. Rebuild them on the application side.

Check that the source accepts connections from the egress addresses preflight prints, that the host is the public one and that the password has not been rotated. zb migrate --dry-run shows the exact URL that will be used after any rewrites.

Each item has a machine code and a fix. Nothing is written to the target until every blocking item is resolved; warnings do not block.

Fewer keys on the target than on the source

Section titled “Fewer keys on the target than on the source”

Keys that expired during the copy are not restored, and keys written after the copy started may be missed. Compare again after a short write freeze.

For anything else, zb migrate status <mig_id> shows the failing step and its message. How migrations work describes every step.