Before you start: migrate from Amazon ElastiCache to KiviDB
Run these against the source with redis-cli or valkey-cli from a machine in the VPC (add --tls if in-transit encryption is on, and --user/--pass or -a):
Check what the source uses
Run these against the source with redis-cli or valkey-cli from a machine in
the VPC (add --tls if in-transit encryption is on, and --user/--pass or
-a):
redis-cli -h my-cache.xxxxxx.use1.cache.amazonaws.com -p 6379 --tls --user app --pass "$PASSWORD" INFO server | grep -E 'redis_version|valkey_version'
redis-cli ... INFO keyspace
redis-cli ... INFO memory | grep -E 'used_memory_human|maxmemory_policy'
On Serverless, INFO answers too; KEYS, MEMORY and CLIENT LIST are not
available there.
| Check | Why it matters |
|---|---|
| Engine and version | Valkey 9.0 or later changes how you move the data (below) |
| Cluster mode | Decides whether you get one RDB file or one per shard, and the client you use afterwards |
EVAL, EVALSHA, FUNCTION in your code (BullMQ, Sidekiq, Redlock and many lock libraries use them) | KiviDB needs the lua or full build; on Cloud, turn on Lua scripting when you create the database |
| In-transit encryption | You need the tls or full build to keep TLS; on Cloud, turn TLS on |
| AUTH token, RBAC users, IAM users | Recreate users in KiviDB; IAM users need a password instead |
maxmemory-policy in the parameter group | Set the same eviction policy in KiviDB; KiviDB's default is noeviction |
| Databases other than 0 (cluster mode disabled only) | KiviDB has 16 databases, as Redis does; a sharded KiviDB has only database 0 |
| Data tiering node type | A backup cannot be exported; copy over commands instead |
| Vector search indexes | Index definitions are not in the backup; run FT.CREATE again in KiviDB |
Size it
In CloudWatch, BytesUsedForCache is the memory the engine uses (for a
node-based cluster, read it per node and add up the primaries).
DatabaseMemoryUsagePercentage shows how full each node is. Serverless reports
BytesUsedForCache for the whole cache. Size KiviDB from the peak over the last
month, with headroom for growth. KiviDB Cloud seeds a database from a file only
when the file is no larger than the database.
Pick the build
| You use | Self-hosted build | KiviDB Cloud |
|---|---|---|
| Neither Lua nor TLS | default | default |
| Lua | lua | Lua scripting on |
| TLS | tls | TLS on (port 6380) |
| Both | full | both on |