Use case · Rate limiting
Rate limiting is where per-command pricing hurts most.
Every rate-limit check is a couple of Redis operations, and it runs on every request, all day. With per-command billing the cost tracks your traffic, not the tiny slice of memory a counter actually uses. That is the workload flat-rate managed Valkey is built for — here is the monthly math, computed from source-checked rates.
The shape of it
A rate limiter at 100 req/s (~518M commands/mo) runs about $1,037/mo on Upstash pay-as-you-go versus $32.24/mo on Steada's flat-rate target — and the gap widens as your request rate climbs.
Worked monthly cost (2 ops/request, 0.25 GiB)
| Request rate | Upstash PAYG | Steada target |
|---|---|---|
| 25 req/s 130M commands/mo | $259 | $22.52 $237/mo lower |
| 100 req/s 518M commands/mo | $1,037 | $32.24 $1,005/mo lower |
| 500 req/s 2592M commands/mo | $5,184 | $84.08 $5,100/mo lower |
Steada figures are a controlled-beta target, not a public offer. Assumes 2 Redis ops per rate-limit check and 0.25 GiB of counter storage. Upstash: $0.20/100,000 commands; Steada target: $19.00/mo + $0.03/1,000,000 commands. Source-checked 2026-06-01. Adjust ops-per-request and rate in the calculator.
Frequently asked questions
- Why is rate limiting expensive on per-command Redis pricing?
- A rate-limit check usually costs about 2 Redis operations, and it runs on every request, around the clock. With per-command billing the meter tracks request volume rather than the tiny amount of memory and compute a rate limiter actually uses, so the bill scales with your traffic instead of your cost to serve it.
- How much does a Redis rate limiter cost per month?
- It depends on request rate. At 100 requests/second and ~2 ops per check, that is roughly 518M commands a month. On Upstash pay-as-you-go that is about $1,037; on Steada's flat-rate target it is about $32.24 for the same workload. Model your own rate in the calculator.
- Is Upstash good for rate limiting?
- For low-volume or spiky APIs, Upstash is a fine, convenient choice — and its edge runtime support is genuinely useful. The trouble starts when a steady, high-request-rate limiter runs 24/7: per-command pricing then climbs faster than the underlying resources cost. That steady, high-volume case is exactly what flat-rate managed Valkey is built for.
- Can I keep my rate-limiting code if I switch?
- In most cases yes. Valkey speaks the same RESP protocol and Redis 7.2 commands, so libraries like go-redis, ioredis, and redis-py connect unchanged — point them at the new endpoint. Only code bound to the Upstash REST API or @upstash/redis HTTP client needs a standard TCP client to move.
Related & sources
See the full Upstash cost crossover, the Valkey vs Redis explainer, or the other worked workloads: session store · LLM response cache.
Per-command rates read from Upstash pricing; client compatibility per the Valkey project. Checked 2026-06-01.
Last reviewed