Limits and gotchas: migrate from Azure Cache for Redis 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, --user and --pass as for your source). Rename them in the source first.
  • RedisBloom data has no equivalent in KiviDB.
  • Time series are refused in an RDB and as DUMP payloads; RIOT carries the samples, but check labels, retention and rules afterwards.
  • Search index definitions are not in an export. Run FT.CREATE again.
  • Basic and Standard cannot export. Copy over commands.
  • Basic has no keyspace notifications: freeze writes for the copy.
  • Entra ID tokens expire, and neither copy tool renews them: run the copy with an access key.
  • Writes after an export are not in the file.
  • Keyspace notifications miss FLUSHALL and FLUSHDB. Don't run them on the source during a live copy.
  • RedisShake does not check the server's TLS certificate: the traffic is encrypted, but it does not verify who it talks to. Run it in your network.
  • Lua. If the application uses EVAL, EVALSHA or FUNCTION, KiviDB needs Lua (the lua or full build, or Lua scripting on in KiviDB Cloud).