Upstash Redis Pricing 2026: The Per-Command Bill Nobody Budgets For
Upstash pay-as-you-go charges $0.20 per 100K commands, and the free tier's ceiling is a command count (500K/month), not storage. A cache issues commands on every request, so the meter that looks trivial becomes the bill. Exact 2026 plans, the ~16K-commands-a-day math, and when metered pricing is the wrong model.
Upstash Redis Pricing 2026: The Per-Command Bill Nobody Budgets For
Upstash is the default serverless Redis in 2026 - it is what Vercel KV became, and what most "Redis on the Marketplace" integrations resolve to. The free tier is genuinely good and the fixed plans are fair. The part that catches people is the pay-as-you-go model, because it prices the one thing a cache does constantly: individual commands.
TL;DR - the gotcha
Upstash pay-as-you-go charges $0.20 per 100,000 commands. That sounds trivial, and for a quiet app it is. But a cache, a rate limiter, or a polling loop issues commands on every single request - often several per request - so the meter that looked like a rounding error becomes the line item. The free tier's ceiling is a command count (500K/month), not a storage number, and that is the limit almost everyone hits first.
The full pricing, exactly (2026)
| Plan | Price/mo | Storage | Commands | Bandwidth | |---|---:|---:|---:|---:| | Free | $0 | 256 MB | 500K / mo | 10 GB | | Pay-as-you-go | usage | up to 100 GB | $0.20 / 100K | 200 GB free, then $0.03/GB | | Fixed 250MB | $10 | 250 MB | unlimited | bundled | | Fixed 1GB | $20 | 1 GB | unlimited | bundled | | Fixed 5GB | $100 | 5 GB | unlimited | bundled | | Fixed 10GB | $200 | 10 GB | unlimited | bundled |
Pay-as-you-go also charges $0.25/GB for storage after the first free gigabyte. Fixed plans include unlimited commands with no per-request charge - which is Upstash telling you, in pricing, that heavy users should not be on the metered plan.
The one you will actually hit
500K commands a month is roughly 16,000 a day. Do the honest arithmetic for your app: count the Redis operations in a single user action. A logged-in page view that checks a session (GET), enforces a rate limit (INCR + EXPIRE), and reads a cached fragment (GET) is already four commands. At four commands per view, 16K/day is about 4,000 views - a number a mildly successful side project passes on a good day. You will exhaust the command budget long before you fill 256 MB of storage.
Once you cross onto pay-as-you-go, the bill scales with traffic, not with data. That is backwards from how people intuit a cache should cost - "it is small, it should be cheap" - and it is the single most common surprise in the serverless Redis cost threads.
When per-command pricing is wrong for you
Metered commands make sense for spiky, low-volume workloads. They are the wrong model for a steady cache. If your access pattern is constant, you have two sane exits: move to an Upstash fixed plan (unlimited commands, predictable monthly price), or use a flat-rate, disk-backed key-value store that speaks the Redis protocol and never counts operations at all. The second option is the same idea behind choosing a disk-backed Redis alternative: keep the client code, drop the meter.
We build BaseKV, a disk-first KV store, so treat this as biased and check the table yourself. The point is not "never use Upstash" - it is "match the pricing model to your access pattern." Bursty and small: metered is fine. Busy and cost-sensitive: flat-rate wins.
Related: What happened to Vercel KV, Upstash Redis vs persistent KV, Disk-backed Redis explained