Before you start: migrate from Upstash to KiviDB

On the database's page in the Upstash console, the Connect section shows the endpoint, the port and the password for the Redis protocol, and the REST URL…

Get the connection details

On the database's page in the Upstash console, the Connect section shows the endpoint, the port and the password for the Redis protocol, and the REST URL and token. The password for the Redis protocol is the same as the standard REST token. Test the connection with valkey-cli or redis-cli (6.2 or later, built with TLS):

export UPSTASH_URI='rediss://default:...@my-db-12345.upstash.io:6379'
redis-cli -u "$UPSTASH_URI" PING

Use the standard password, not the read-only one: Upstash restricts SCAN for read-only credentials.

Check what the database uses

redis-cli -u "$UPSTASH_URI" INFO keyspace
redis-cli -u "$UPSTASH_URI" INFO memory | grep -E 'used_memory_human|maxmemory_policy'
redis-cli -u "$UPSTASH_URI" DBSIZE

INFO is not billed on Upstash; DBSIZE is one command.

CheckWhy it matters
Your code calls eval, evalsha or scriptLoad, or uses @upstash/ratelimit, BullMQ or a lock libraryThese run Lua scripts. KiviDB needs the lua or full build; on Cloud, turn on Lua scripting when you create the database. Default and free-tier Cloud databases have no Lua
Eviction is onChoose an eviction policy on KiviDB. optimistic-volatile picks keys at random, preferring keys with a TTL: volatile-random or allkeys-random are the nearest, allkeys-lru usually works better for a cache
Global databaseClients far from the primary region read from a nearer replica on Upstash; on KiviDB every client reaches the one region you choose
Edge or serverless functions (Vercel, Netlify, Cloudflare Workers)Keep the REST API (Option A): these runtimes often can't hold a TCP connection
blpop, subscribe or other blocking commands over RESTUpstash's REST API refuses them, and so does KiviDB's; over the Redis protocol both work

Size it

Size KiviDB from the data size on the database's page, or used_memory_human, plus headroom for growth; about 30% more is a reasonable start.