Limits and gotchas: migrate from Dragonfly to KiviDB

Limits and gotchas. Migrate to KiviDB: Move from Redis, Valkey, ElastiCache, Redis Cloud, Aiven, Aerospike, Hazelcast and more: getting the data out, loading

What does not come across

  • .dfs snapshots. Use SAVE RDB.
  • Member expiry set with HSETEX, FIELDEXPIRE or SADDEX: see above.
  • Bloom filters and search indexes. Rebuild them on KiviDB.
  • Live replication. There is no way to follow Dragonfly's writes, so the move needs a write freeze.

Gotchas

  • KiviDB 1.2.0 starts empty, without an error, when --preload-file names a .dfs summary file. Check DBSIZE after every load.
  • CONFIG SET notify-keyspace-events is refused by Dragonfly, so tools that follow writes through keyspace notifications copy nothing after the first pass.
  • Tested with Dragonfly 2.1: SAVE RDB, BGSAVE RDB, --df_snapshot_format=false, RDB load by --dir and by --preload-file, RedisShake scan_reader, RIOT, and RIOT --struct for keys with member expiry, with every core data type, TTLs, streams with consumer groups and a second logical database.