Limits and gotchas: migrate from Upstash to KiviDB

ERR key must be valid UTF-8, and both copy tools stop at the first one. Rename them on Upstash first.

  • Key names that are not valid UTF-8. KiviDB refuses them with ERR key must be valid UTF-8, and both copy tools stop at the first one. Rename them on Upstash first.
  • HyperLogLogs. KiviDB's HyperLogLog layout is not Redis's. After the copy, compare PFCOUNT on a few HyperLogLog keys on both sides; if they differ, rebuild them with PFADD from your source data.
  • Redis Functions are not in Upstash's export, and the copy tools don't move them. Load them again on KiviDB.
  • Read regions. A global database's read regions have no equivalent; choose the KiviDB region nearest your writers.
  • Upstash-only SDK features: read-your-writes sync tokens, and the @upstash/ratelimit, QStash and Workflow products, are Upstash services. @upstash/ratelimit runs Lua scripts through @upstash/redis; test it against KiviDB with the Lua add-on on before you rely on it.
  • Eviction. Upstash's eviction is off by default, as is KiviDB's. If you had it on, set a policy on KiviDB too, or writes fail with an out-of-memory error once the database is full.