Limits and gotchas: migrate from Redis Cloud to KiviDB
(ERR key must be valid UTF-8), and RIOT stops at the first one. Before the copy, look for binary key names: redis-cli --scan | python3 -c "import sys…
- Key names must be valid UTF-8. KiviDB refuses a key whose name is not
(
ERR key must be valid UTF-8), and RIOT stops at the first one. Before the copy, look for binary key names:redis-cli --scan | python3 -c "import sys; [print(l, end='') for l in sys.stdin.buffer if not l.decode('utf-8','ignore').encode()==l]" | head(use--tls,--userand--passas for your source). Rename them in the source first. - Probabilistic data (Bloom, Cuckoo, Count-min sketch, Top-K, t-digest) has no equivalent in KiviDB.
- Time series are refused in an RDB and as
DUMPpayloads; RIOT carries the samples, but check labels, retention and rules afterwards. - Search index definitions are not in a backup. Run
FT.CREATEagain. - Active-Active behaviour (writes in several regions) has no equivalent; pick one region's application to write to KiviDB.
- Free databases have no backups and no TLS; copy over commands.
- Writes after a backup are not in it.
- Keyspace notifications miss
FLUSHALLandFLUSHDB. Don't run them on the source during aksnor--mode LIVEcopy. - RedisShake does not check the server's TLS certificate: the traffic is
encrypted, but it does not verify who it talks to. RIOT does, with
--source-cacertand--target-cacert. - Lua. If the application uses
EVAL,EVALSHAorFUNCTION, KiviDB needs Lua (theluaorfullbuild, or Lua scripting on in KiviDB Cloud).