Limits and gotchas: migrate from Google Memorystore 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. - Valkey 9.0 and later. Neither the backup file nor
DUMPpayloads load into KiviDB 1.2.0; use RIOT--struct, which leaves stream consumer groups and hash field TTLs behind. - Writes after an export or backup are not in the file.
- Keyspace notifications miss
FLUSHALLandFLUSHDB. Don't run them on the source during a live copy. - IAM tokens expire after an hour and the copy tools don't renew them.
- RedisShake does not check the server's TLS certificate: the traffic is encrypted, but it does not verify who it talks to. Run it inside your VPC.
- Cross-region replicas do not come across; copy from the primary.
- Lua. If the application uses
EVAL,EVALSHAorFUNCTION, KiviDB needs Lua (theluaorfullbuild, or Lua scripting on in KiviDB Cloud).