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
PFCOUNTon a few HyperLogLog keys on both sides; if they differ, rebuild them withPFADDfrom 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/ratelimitruns 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.