Redis has become the default caching layer for web apps, and managed Redis is the obvious choice unless you genuinely enjoy tuning persistence settings at 2 AM. The problem is that the four main providers have almost nothing in common when it comes to pricing. One charges by the millisecond of compute. One charges a flat monthly fee. One charges per Redis command. Getting a real apples-to-apples comparison requires picking a concrete workload and running the numbers honestly.
The workload throughout this article: a 1 GB RAM Redis instance used as a caching layer for a small web app, running 24/7, handling roughly 500,000 commands per day (a mix of GET, SET, and EXPIRE operations), with minimal persistence requirements. This matches the most common setup for apps in the 1,000 to 10,000 daily active user range. For the managed Postgres side of the same stack, see the managed Postgres cost comparison, which covers the same four providers.
AWS ElastiCache: The Default Choice You Pay Dearly For
ElastiCache for Redis is the obvious answer if your app already runs inside AWS and needs sub-millisecond latency within a VPC. It is also the most expensive option for small workloads and the most operationally complex to set up.
Pricing in us-east-1 for on-demand instances: cache.t4g.micro (0.5 GB RAM) runs $0.016/hour, which works out to $11.68/month. Cache.t4g.small (1.37 GB RAM) runs $0.032/hour, or $23.36/month. Cache.t4g.medium (3.09 GB RAM) runs $0.065/hour, or $47.45/month. For the 1 GB workload, the t4g.small is the right fit at $23.36/month.
If you need high availability with Multi-AZ and a replica node, double those numbers. A t4g.small with one replica costs $46.72/month. For a side project, that is hard to justify.
For legacy AWS accounts (created before July 15, 2025), ElastiCache offers 750 hours/month of cache.t2.micro or cache.t3.micro free for the first 12 months. Once that window closes, you are on full on-demand pricing with no grace period and no warning email. For accounts created after July 15, 2025, there are no dedicated ElastiCache free hours — ElastiCache usage draws from the $200 credit pool that expires after six months. See the AWS free tier guide for details on both models. Either way, if you built a project on the free tier and forgot about it, check your billing console now.
Data transfer costs add up in specific configurations. Traffic within the same Availability Zone is free. Cross-AZ traffic (common when your app servers and Redis node land in different AZs) costs $0.01/GB. Egress to the internet costs $0.09/GB, though you should never expose a Redis instance to the public internet anyway.
The bigger hidden cost with ElastiCache is the VPC requirement. ElastiCache lives entirely inside your VPC and is not reachable from outside AWS without additional infrastructure. If your app needs to connect from a laptop, a CI runner, or a service outside AWS, you need a NAT Gateway ($0.045/hour, or about $32.40/month just for the gateway itself) or a VPN setup. For developers running a hybrid setup or testing locally, this is a real operational burden that does not show up in the ElastiCache price.
DigitalOcean Managed Redis: Predictable and Boring in the Best Way
DigitalOcean Managed Redis prices at $15.15/month for 1 GiB RAM. The 2 GiB tier runs $30.45/month. If you want a standby node for high availability, the 1 GiB HA plan doubles to $30.30/month. That is the entire pricing model: pick a tier, pay the monthly rate, done.
Automated daily backups, VPC peering, SSL encryption in transit, and connection pooling are all included at no extra charge. On ElastiCache, some of these features require additional configuration or cost extra in certain setups. On DigitalOcean, they are just on by default.
The connection experience is also simpler. DigitalOcean gives you a TLS connection string that works from anywhere: your app server, your laptop, your CI pipeline. No VPC setup required, no security group rules to debug, no NAT Gateway to provision. For teams that are not already deep in a single cloud provider, this operational simplicity has real value.
For the 1 GB test workload, DigitalOcean comes in at $15.15/month flat, regardless of whether you send 500K or 5 million commands per day. That predictability is worth something when you are trying to budget a project.
Upstash: Serverless Redis That Can Surprise You at Scale
Upstash uses a fundamentally different pricing model: you pay per command executed, not per instance running. The free tier covers 10,000 commands per day on a single database with 256 MB max data. That is enough for a very early prototype but not much else.
On the pay-as-you-go plan, each 100,000 commands costs $0.20. Storage runs $0.25/GB/month, with a 10 GB maximum on the pay-as-you-go tier.
The math at different traffic levels tells a clear story. At 100,000 commands per day, you are running 3 million commands per month. That works out to $6/month in command costs plus a small storage charge. Upstash is genuinely cheap at this level. At 500,000 commands per day (the test workload), that is 15 million commands per month, which costs $30/month. Still competitive with ElastiCache but more expensive than DigitalOcean. At 1 million commands per day, you hit 30 million commands per month and a $60/month bill, at which point a fixed-price provider almost certainly wins.
Upstash is globally distributed and accessible over HTTP, which makes it the right fit for edge functions, serverless workloads, and Vercel/Cloudflare deployments where you cannot open a persistent TCP connection to a VPC-bound Redis instance. If you are running Next.js on Vercel and need a Redis cache, Upstash is often the only realistic option. For traditional long-running apps, the per-command model adds financial risk without a corresponding benefit.
Railway: The Integrated Stack Option
Railway bills Redis on the same usage model as their other services: $10.14/GB RAM per month plus $0.157/GB storage per month. A 512 MB Redis instance comes to $5.07/month, and a 1 GB instance runs $10.14/month in RAM cost alone before accounting for storage.
The Hobby plan at $5/month includes $5 in usage credits. A 512 MB Redis instance running 24/7 fits within that credit for light usage, making it effectively free if you are already on Hobby for another service. The Pro plan at $20/month includes $20 in credits, which covers the 1 GB Redis instance plus leaves room for other services.
Railway Redis makes the most sense for developers who already have their web app and Postgres running on Railway and want everything consolidated into one bill. The operational simplicity of a single provider, a single dashboard, and a single bill is real. Compared to DigitalOcean at $15.15/month for 1 GiB, Railway at $10.14/month for 1 GB is actually cheaper on a pure compute basis, though Railway's usage-based model means the final bill depends on actual memory consumption and storage usage.
Side-by-Side: Real Workload Numbers
The test workload: 1 GB RAM Redis instance, 500,000 commands per day, minimal storage, running continuously. These are real monthly cost estimates based on current published pricing.
| Provider | Instance / Plan | Monthly Cost | Billing Model | HA Option |
|---|---|---|---|---|
| Railway | 1 GB RAM (usage) | ~$10.14 | Per GB-RAM/hr | Not offered |
| DigitalOcean | 1 GiB Managed Redis | $15.15 Flat | Fixed monthly | $30.30/mo |
| Upstash | Pay-as-you-go | ~$30.00 Variable | Per 100K cmds | Multi-region paid |
| AWS ElastiCache | cache.t4g.small | $23.36 | Instance-hour | $46.72/mo |
At 500K commands/day, the order from cheapest to most expensive is Railway, DigitalOcean, Upstash, ElastiCache. That ranking shifts depending on your command volume. At 100K commands/day, Upstash drops to $6/month and becomes the cheapest option. At 1M commands/day, Upstash hits $60/month and becomes the most expensive by far.
Which One Should You Actually Use
The honest answer depends on what you are building and where the rest of your infrastructure lives.
Upstash
Under 5,000 daily active users with bursty, infrequent Redis usage. The free tier covers early development, and the per-command model means you pay nothing for idle time. Once you cross 500K commands/day consistently, start comparing against DigitalOcean.
DigitalOcean Managed Redis
$15.15/month flat, no surprises, backups included. If your app is already on DigitalOcean or you want predictable billing without touching AWS, this is the right default. The HA option at $30.30/month is reasonable for anything customer-facing.
AWS ElastiCache
When your app runs inside a VPC and needs the lowest possible latency to Redis without crossing a network boundary, ElastiCache wins on performance. You pay a premium for it: $23.36/month for a t4g.small versus $15.15 on DigitalOcean. Justify the cost with the latency requirement, not default AWS inertia.
Railway
If your app and Postgres already run on Railway, adding Redis there makes sense. The usage-based billing at $10.14/GB RAM/month is the cheapest option for a 1 GB instance, and keeping everything in one dashboard has real operational value. The lack of HA is the main limitation for production workloads.
One consideration that rarely appears in pricing comparisons: the operational cost of learning and debugging a new provider. If you already know AWS well, ElastiCache is not as expensive as it looks when you factor in the hours you would spend learning DigitalOcean's networking model. Conversely, if you are new to cloud infrastructure, DigitalOcean's simpler connection model and flat pricing will save you real time and confusion.
For the full managed database picture, the managed Postgres cost comparison covers these same four providers on the database side. Most production apps need both services, and the right Redis choice often follows from where you land on Postgres.
Compare Database Costs for Your Stack
The Database Cost Calculator lets you model Redis and Postgres costs side by side across providers. Plug in your RAM and storage requirements and see the monthly total before you commit.
Open Database Calculator