Redis vs MySQL at scale: why Shopify moved inventory to MySQL
Published 2026-10-19 · Built only from first-party engineering write-ups in our database. Every number below comes from the linked source.
Shopify's 2026 post is the direct comparison: it moved checkout inventory reservations from Redis to MySQL, using one row per sellable unit, a bounded pool of 1,000 rows per item and location, and SELECT ... FOR UPDATE SKIP LOCKED. The real ceiling turned out to be connections held by other checkout code. Elsewhere Redis plays supporting roles: Stripe's rate limiters and Stack Overflow's caching.
Redis vs MySQL: side by side
| Redis | MySQL | |
|---|---|---|
| Stories in our database | 3 | 10 |
| Companies | Shopify, Stack Overflow and Stripe | Canva, GitHub, Meta, PlanetScale, Shopify and Slack |
| Published | 2016–2026 | 2013–2026 |
| Techniques alongside it | caching (1), connection pooling (1), database migration (1), dual writes (1) | database migration (3), horizontal sharding (3), caching (2), online migration (2) |
| Scale numbers stated in sources | $5.1 million sales/minute (Black Friday 2025 peak) (Shopify) | hundreds of millions of users (Canva); $5.1 million sales/minute (Black Friday 2025 peak) (Shopify); 5.5 million QPS (GitHub) |
| Direct comparison story | Shopify: We replaced Redis with MySQL for inventory reservations—and it scaled | (same story) |
Verdict
Redis keeps showing up for caching and rate limiting. Shopify's post shows a relational database can also take a hot, contended workload when the schema and locking are designed for it.
Counts are stories in How They Scaled tagged with each side, see the Redis and MySQL pages. They describe what these teams wrote about, not market share or benchmark results.