Before you start: migrate from Azure Cache for Redis to KiviDB
From a machine that can reach the cache (add the access key as the password):
Check what the cache uses
From a machine that can reach the cache (add the access key as the password):
# Basic, Standard, Premium
redis-cli -h my-cache.redis.cache.windows.net -p 6380 --tls -a "$ACCESS_KEY" INFO server | grep redis_version
# Enterprise, Azure Managed Redis
redis-cli -h my-cache.eastus.redis.azure.net -p 10000 --tls -a "$ACCESS_KEY" INFO server | grep redis_version
redis-cli ... INFO keyspace
redis-cli ... MODULE LIST
| Check | Why it matters |
|---|---|
| Tier | Decides whether you can export a file |
| Clustering, cluster policy | One file or several; and which client the application uses afterwards |
| Modules (Enterprise, Azure Managed Redis) | Time series keys make an RDB refused as a whole; RedisBloom data has no equivalent |
EVAL, EVALSHA, FUNCTION in your code (BullMQ, Sidekiq, many lock libraries) | KiviDB needs the lua or full build; on Cloud, turn on Lua scripting when you create the database |
| Microsoft Entra ID only (access keys turned off) | The copy tools need a password: turn access keys on for the copy, and give the application a KiviDB password |
| Databases other than 0 (Basic to Premium, not clustered) | KiviDB has 16 databases, as Redis does; a sharded KiviDB has only database 0 |
| Maxmemory policy | Set the same one in KiviDB; KiviDB's default is noeviction |
Size it
In the portal, Monitoring → Metrics, look at Used Memory over the last month and take the peak. On Azure Managed Redis with high availability on, that figure includes the replica, so halve it. Size KiviDB from the peak with headroom. KiviDB Cloud seeds a database from a file only when the file is no larger than the database.