← Back to articles

Upstash vs Redis Cloud vs ElastiCache (2026)

Three ways to run Redis. Upstash: serverless, pay-per-request. Redis Cloud: managed by the Redis company. ElastiCache: AWS-native. Here's how to choose.

Quick Comparison

FeatureUpstashRedis CloudElastiCache
TypeServerlessManagedManaged (AWS)
PricingPer-requestPer-hourPer-hour
Free tier10K cmds/day30MBNone
Scale to zero
Edge/serverless✅ REST API❌ TCP only❌ VPC only
Global replication❌ (single region)
Max throughputAuto-scalesConfigurableInstance-based
Setup time30 seconds5 minutes15 minutes
Persistence✅ Durable✅ Optional
VPCOptional✅ (required)

Upstash: Serverless Redis

Strengths

Pay per request. No idle costs. Your Redis costs $0 when nobody's using it. Perfect for: side projects, development environments, variable traffic, and applications with quiet periods.

REST API. Access Redis over HTTP — works from edge functions, serverless, and environments where TCP connections aren't available (Cloudflare Workers, Vercel Edge).

// Works from Cloudflare Workers, Vercel Edge, etc.
import { Redis } from '@upstash/redis';

const redis = new Redis({
  url: process.env.UPSTASH_REDIS_REST_URL,
  token: process.env.UPSTASH_REDIS_REST_TOKEN,
});

await redis.set('user:123', { name: 'John', plan: 'pro' });
const user = await redis.get('user:123');

Global replication. Replicate your database across regions. Read from the nearest replica. Essential for global applications on edge runtimes.

Built-in rate limiting, queues, and workflows:

  • @upstash/ratelimit — Rate limiting with sliding window
  • @upstash/qstash — Message queue and task scheduling
  • @upstash/workflow — Durable workflow execution

Instant provisioning. Create a database in the Upstash console → copy the URL → start using it. No infrastructure configuration.

Weaknesses

  • Higher per-operation cost at scale. At millions of operations/day, per-request pricing becomes more expensive than fixed-instance pricing.
  • REST adds latency. HTTP requests are slower than TCP connections (~5-15ms vs ~1-3ms for nearby instances). For ultra-low-latency use cases, TCP-based Redis is faster.
  • Not full Redis. Some Redis commands aren't supported over REST. Advanced features (Lua scripting, streams) have limitations.
  • Throughput ceiling. Auto-scaling has limits. Very high throughput workloads (100K+ ops/sec) may need dedicated instances.

Pricing

TierPriceIncludes
Free$010K commands/day, 256MB
Pay-as-you-go$0.2/100K commandsUp to 1GB
ProFrom $30/moHigher limits, multi-region

Best For

Serverless and edge applications. Side projects and development. Variable-traffic applications where scale-to-zero matters. Global applications needing edge-accessible Redis.

Redis Cloud: By Redis, For Redis

Strengths

Full Redis feature set. Every Redis command, module, and feature. RediSearch, RedisJSON, RedisGraph, RedisTimeSeries — all available. If Redis supports it, Redis Cloud supports it.

Active-Active geo-replication. Multi-region with conflict-free writes. Both regions accept writes and sync automatically. The most robust geo-replication of any Redis offering.

Flexible sizing. Choose exact memory, throughput, and persistence settings. Scale up or down without downtime.

Redis expertise. Managed by the company that makes Redis. Best support, fastest access to new features, deepest optimization.

Weaknesses

  • No serverless option. Pay per hour regardless of usage. Idle databases cost money.
  • TCP only. No REST API. Doesn't work from edge functions without a proxy.
  • Pricing is complex. Memory + throughput + modules + replication = difficult to predict costs.
  • Setup is more involved. Choose region, plan, modules, persistence settings. More decisions than Upstash's instant provisioning.

Pricing

PlanMemoryPrice
Free30MB$0
Fixed250MB-12GB$7-340/mo
FlexibleCustomUsage-based

Best For

Applications using advanced Redis features (Search, JSON, Graph). Multi-region active-active replication. Teams wanting the official Redis experience.

ElastiCache: AWS-Native

Strengths

AWS integration. Lives in your VPC. IAM authentication. CloudWatch metrics. Native to the AWS ecosystem.

Predictable performance. Dedicated instances with guaranteed resources. No noisy-neighbor issues. Consistent sub-millisecond latency.

Instance variety. From small (cache.t3.micro: ~$12/mo) to massive (cache.r6g.16xlarge: ~$5,000/mo). Pick the exact size for your workload.

Cluster mode. Shard data across multiple nodes for throughput beyond a single instance. Auto-scaling based on metrics.

Weaknesses

  • AWS only. Locked into AWS. Can't use from other clouds, edge functions, or non-AWS environments.
  • VPC required. Must be in the same VPC as your application. No public endpoint (without NAT/proxy).
  • No free tier. Smallest instance: ~$12/month. No scale-to-zero.
  • Operational overhead. Maintenance windows, patching, parameter groups, security groups. More infrastructure to manage than Upstash or Redis Cloud.
  • No REST API. TCP connections only. Doesn't work from serverless edge.

Pricing

InstanceMemoryPrice
cache.t3.micro0.5GB~$12/mo
cache.t3.small1.4GB~$24/mo
cache.r6g.large13GB~$130/mo
cache.r6g.xlarge26GB~$260/mo

Best For

AWS-centric applications. Workloads requiring predictable, sub-millisecond latency. High-throughput applications already in AWS VPC.

Decision Matrix

If You Need...Choose
Edge/serverless accessUpstash
Scale to zeroUpstash
Lowest cost (low traffic)Upstash (free tier)
Advanced Redis featuresRedis Cloud
Active-active geo-replicationRedis Cloud
AWS-native integrationElastiCache
Sub-millisecond latencyElastiCache
Highest throughputElastiCache
Simplest setupUpstash
Full Redis compatibilityRedis Cloud

Cost Comparison

ScenarioUpstashRedis CloudElastiCache
Idle/dev$0$0 (30MB)~$12/mo
10K ops/day$0 (free)$0 (30MB)~$12/mo
1M ops/day~$6/mo~$7/mo~$12/mo
10M ops/day~$60/mo~$30/mo~$24/mo
100M ops/day~$600/mo~$100/mo~$130/mo

Crossover point: Upstash is cheapest below ~5M ops/day. Above that, fixed-instance pricing (Redis Cloud, ElastiCache) is more economical.

FAQ

Can I use Upstash as a primary database?

For simple key-value data with persistence: yes. For relational data or complex queries: no, use a proper database. Upstash is best as a cache, session store, rate limiter, or queue.

Do I need Redis at all?

If you need: caching, session storage, rate limiting, real-time leaderboards, pub/sub, or task queues — yes. If your database handles your read load fine — maybe not yet.

Can I migrate between providers?

Redis data is portable. Export with RDB dump → import to any Redis instance. Migration is straightforward for data. Connection configuration and features differ between providers.

What about Dragonfly or KeyDB?

Redis-compatible alternatives. Dragonfly claims 25x throughput improvement. KeyDB adds multi-threading. Both are self-hosted. Consider if you need maximum performance and have DevOps capacity.

Bottom Line

Upstash for serverless, edge, and variable-traffic applications. Scale to zero. REST API access from anywhere. The default for modern serverless architectures.

Redis Cloud for applications using advanced Redis features (Search, JSON, Graph) or needing active-active geo-replication. The full Redis experience.

ElastiCache for AWS-centric applications needing predictable sub-millisecond performance. When you're all-in on AWS and want native integration.

The common path: Start with Upstash (free, instant setup). Move to Redis Cloud or ElastiCache when you need features or performance that Upstash doesn't provide.

Get AI tool guides in your inbox

Weekly deep-dives on the best AI coding tools, automation platforms, and productivity software.