Skip to main content
The most up-to-date pricing is always available at upstash.com/pricing/redis.
Upstash Redis has a free tier and two paid plans: Pay-As-You-Go (billed per request) and Fixed (a flat monthly price). The numbers below reflect current pricing — see the pricing page for the most up-to-date information.

Free tier

Every account starts with a free database. No credit card required.

Pay-As-You-Go (PAYG)

Billed per request, so you only pay for what you use. Best for variable or low-volume workloads where command volume is unpredictable — caching in serverless functions, edge workloads, and apps that scale to zero. To avoid surprise charges, set a monthly budget on a PAYG database. When the budget is reached the database is rate-limited rather than continuing to bill. Budgets are set per database; there is no account-wide budget.

Fixed plans

A flat monthly price with a cap on throughput and data size. Usually cheaper than PAYG for sustained, high-throughput workloads where command count is consistently high and predictable. Worker-heavy setups such as Sidekiq, BullMQ, Celery, and cron jobs are a common fit because they hit Redis continuously even when idle. You can start on PAYG and switch to a Fixed plan later, or vice versa.

All plans and limits

*PAYG bandwidth is free up to 200 GB/month, then $0.03/GB. Enterprise plans support larger data sizes and custom limits — contact us.

How billing works

  • What counts as a command. Pricing is based on the number of commands (requests) executed. This applies equally to the REST API and to commands made over the Redis protocol — one command is one billable request in both cases.
  • Global databases. With Global replication, each write is replicated to every read region, and each replicated write counts as a command for billing. Adding read regions to a Fixed plan costs 50% of the base tier price per region.
  • Lua scripts. EVAL, EVALSHA, EVAL_RO and EVALSHA_RO are billed as one command, plus one command for every redis.call or redis.pcall the script runs. A script that runs a GET and a SET is billed as 3 commands.
  • Transactions. MULTI and EXEC are billed as commands too, so a transaction of N commands is billed as N + 2. This also applies to transactions sent to the REST API’s /multi-exec endpoint. Commands are counted as they are queued, so a transaction that is aborted at EXEC is still billed.
  • Commands that are not billed. AUTH, HELLO, RESET, PING, SELECT, QUIT, INFO, CONFIG and COMMAND.
  • Number of databases. A free account can have 1 database. On PAYG, the first 10 databases are free and each additional database costs $0.50 per month. This is charged on the account (as a “Database Surplus Charge”), not on a database, so a database budget does not cap it. Paid accounts can have up to 100 databases; email support@upstash.com to raise the limit.
  • Adding a payment method. Adding your first payment method moves every free resource on the account to its paid plan: all Redis databases, plus QStash, Vector, Search and Blob. An account with a payment method cannot have free databases. See Upgrade Your Database.
  • Storage. On PAYG, storage is billed at $0.25/GB per month with the first 1 GB free. Fixed plans include storage up to the plan’s data-size cap.
  • Prod Pack. Production features (high availability, encryption, SOC-2, advanced monitoring) are available as an add-on for $200/month per database. See Prod Pack & Enterprise.

Optimizing cost

  • On PAYG, a high baseline of background commands (for example, Sidekiq polling) can drive up command count even when there is no real workload — switching to a Fixed plan caps that cost.
  • Prefer pipelines and MULTI/EXEC to reduce round trips; note that each command inside a pipeline or transaction is still billed individually, and MULTI and EXEC are billed as well.
  • Set a monthly budget on PAYG databases to bound spend.