Upstash

Serverless Redis + Kafka with HTTP API. Pay-per-request, edge-friendly.

VISIT UPSTASH

Key takeaway: Any time a serverless or edge function needs Redis, Upstash is the default, because it speaks HTTP and does not need a TCP connection you cannot open. Pick it for caching, rate limiting, and sessions. Once throughput is high and steady, dedicated Redis on a server will cost less.

Quick facts

  • CategoryKV / Redis / object
  • EngineRedis
  • PricingFreemium
  • LicenseProprietary
  • Created2020
  • GitHub starsclosed
  • PostgresNo
  • Edge-readyYes

Bundled features: Redis Kafka QStash (queue)

What it is

Upstash is serverless Redis and Kafka with an HTTP-friendly API (no TCP, works in edge runtimes). Pay-per-request pricing, generous free tier, multi-region replication. The default for Redis on Vercel / Cloudflare Workers / serverless functions.

Best for

  • Caching, rate-limiting, sessions on serverless platforms
  • Edge-runtime apps that need Redis without a TCP connection
  • Pub/sub or queue workloads at small to mid scale

When not to pick it

Skip Upstash for high-throughput workloads where dedicated Redis on a VPS will be cheaper at scale. Skip if you need primitives Upstash does not surface (Lua scripting, modules).

My take

Upstash is the default Redis for serverless / edge in 2026. Pricing model fits variable workloads; less competitive at high steady throughput.

HTTP is the whole point

Redis normally assumes a long-lived TCP connection, which is precisely what a serverless function or an edge runtime cannot give it. Functions come and go in milliseconds, edge runtimes often will not open a raw socket at all, and pooling connections to a cache defeats the purpose of having one. Upstash exposes Redis over HTTP with a REST-shaped client, so a Worker or a serverless function calls it like any other API and nothing needs keeping warm. Combined with per-request pricing, that makes it the natural fit for the three jobs serverless apps actually need Redis for: caching expensive computations, rate limiting by IP or key, and holding session state between stateless invocations. The queueing product covers background work in the same shape. None of this is exotic; it is Redis with the transport problem solved, which is why it became the default.

Per-request pricing, and the primitives that are not there

Pay-per-request suits variable and bursty traffic, where an always-on Redis instance would spend most of its life idle and billed. Invert the traffic pattern and the maths inverts too: at high, steady throughput you are paying per operation for something a modest server would handle for a flat monthly fee. Work out your requests per second before assuming serverless pricing is the cheap option, because caches get called far more often than databases do. The other limitation is surface area. Upstash exposes a large subset of Redis but not all of it, and more specialised primitives such as server-side scripting or Redis modules may not be there. If your caching layer depends on scripting for atomicity, check before you commit rather than after. HTTP also adds a little latency per call compared with a socket, which matters when one request makes many round trips.

Frequently asked questions

Is Upstash real Redis?

It is Redis-compatible and you use standard Redis commands and clients, with the difference being the HTTP transport instead of a persistent TCP connection. A large subset of the command surface is supported, but not all of it: verify the specific primitives you depend on, particularly server-side scripting or modules, before designing around them.

Is Upstash free?

There is a free tier that comfortably covers side projects and small production workloads, with paid usage priced per request. That model rewards spiky and variable traffic. It works against you at sustained high throughput, so calculate your operations per second before assuming it is cheaper than a small dedicated instance.

Upstash or self-hosted Redis?

Upstash whenever your compute is serverless or at the edge, because the HTTP transport removes a problem you would otherwise fight constantly. Self-hosted or managed Redis on a server once throughput is high and steady, where flat pricing beats per-request and a socket beats HTTP on latency. Traffic shape decides this, not scale alone.

Links

Similar tools you should also consider

If Upstash is your pick, the next conversation is short

The 30-min call is where your database choice becomes a real architecture, a migration plan if you are switching, and a price range you can take to your stakeholders. Describe your stack, your scale, your data shape. I tell you whether Upstash is genuinely your fit.