Redis is an in-memory data structure store that is, in the right context, a brilliant piece of engineering — fast, elegant, and genuinely useful at scale. It is also, in the wrong context, the first thing a developer adds to a system when they have run out of ideas for why their code is slow.
Redis itself has done nothing wrong. Redis is a tool. Redis does exactly what it claims to do: store data in memory, retrieve it quickly, and support a variety of data structures with admirable efficiency. The problem is not Redis. The problem is the gap between what Redis is — an in-memory cache for systems that need one — and what Redis represents — the universal answer to the question “how do I make it faster?” when the real answer is “fix your queries.”
“No Redis.”
— riclib, The Squirrel’s Betrayal, or The New York Times Discovers YAGNI
The Mechanism
The Redis Addition follows a consistent trajectory:
- A developer notices their application is slow
- The developer does not profile the application
- The developer adds Redis
- The application is now fast for the 7% of requests that hit the cache
- The application is unchanged for the 93% of requests that don’t
- The developer declares victory
- The monthly cloud bill increases by £3,000
- Nobody checks the cache hit ratio, because checking the cache hit ratio would reveal that the cache is not helping, and the cache not helping would mean the developer has to profile the application, which is what they were avoiding in step 2
The cycle is sustained by a belief system in which “add a cache” is a solution and “fix the code” is an admission of failure. The cache is a bandage. The bandage is expensive. The wound is a missing index.
The Blazer Years Incident
The most thorough Redis autopsy in the lifelog occurred during Interlude — The Blazer Years, when a consultant encountered a system running forty-seven microservices, The Spotify Model for twelve developers, and Redis for queries that took twelve milliseconds.
The numbers:
| Metric | Value |
|---|---|
| Database query time | 12ms |
| Redis cache response time | 0.3ms |
| Cache hit ratio | 7% |
| Average time saved per request | 0.8ms |
| Service mesh latency added | 400ms |
| Redis monthly cost | £3,000 |
“You have twelve hundred users. Your cache hit ratio is 7%. You’re paying for Redis to save 11.7 milliseconds on 7% of queries. That’s 0.8 milliseconds average savings. Your service mesh adds 400 milliseconds of latency.”
— The Consultant, Interlude — The Blazer Years
The service mesh — added to coordinate the microservices that were added to support the scale that did not exist — contributed four hundred milliseconds of latency. The Redis cache, deployed to mitigate the latency, saved eleven. The net effect of the entire caching and microservice infrastructure was to make the system 389 milliseconds slower than the monolith it replaced, at a cost of forty-seven thousand pounds per month.
The consultant blinked. The Redis was deleted. The monolith was restored. The query still took twelve milliseconds. Nobody noticed.
The Squirrel’s Attachment
The Caffeinated Squirrel has a deep and persistent attachment to Redis. The attachment survives all evidence, all arithmetic, and all direct refusals:
“And then we cache the similarity matrix! Precompute on publish! But wait, what about new posts? We need to invalidate and recompute! Background jobs! We’ll need a job queue! Redis?”
— The Caffeinated Squirrel, The Feature That Wasn’t
The Squirrel’s Redis proposals have been declined fourteen times in a single session. The Squirrel has proposed “a really small Redis.” The Squirrel has proposed “a Redis that only stores one value.” The Squirrel has, when explicitly told that Redis, microservices, Kubernetes, service mesh, and any derivative thereof are banned, asked about a Redis that only stores one value.
"…what about a really small Redis?"
— The Caffeinated Squirrel, after being told no Redis, The Squirrel’s Betrayal, or The New York Times Discovers YAGNI
A really small Redis is called a variable. It is free. It compiles into the binary. It does not require a cloud instance. It does not have a monthly bill. It does not need monitoring. It does not reorganize its keys at 3 AM.
The Cargo Cult
The New York Times article about YAGNI produced a secondary phenomenon: 847 developers simultaneously removing Redis from their stacks.
“We were spending $2.3 million a year on Kubernetes infrastructure. After reading ‘The Lizard Brain vs The Caffeinated Squirrel,’ we realized: we’re the squirrel. We had added Redis caching for a database that returned results in 3 milliseconds. The lizard brain would not have approved.”
— The Squirrel’s Betrayal, or The New York Times Discovers YAGNI
The developers removed Redis. Then the service mesh. Then the event bus. Then Kubernetes entirely. They now run on three EC2 instances and SQLite.
The Squirrel’s concern was valid: they were removing Redis without understanding why. They were cargo culting the removal of cargo cult infrastructure. But cargo culting that worked.
“Finding the lizard brain one Redis removal at a time.”
— riclib, The Squirrel’s Betrayal, or The New York Times Discovers YAGNI
When Redis Is Right
Redis is right when:
- Your database genuinely cannot handle the query volume (millions of requests per second)
- Your cache hit ratio is above 80%
- The data is ephemeral and loss-tolerant (sessions, rate limits, leaderboards)
- You have profiled your application and the database is the actual bottleneck
- You have more than twelve hundred users
Redis is wrong when:
- Your database responds in twelve milliseconds and you haven’t asked why that’s not fast enough
- Your cache hit ratio is 7%
- You added it because a Medium article said you should
- You added it because the Squirrel suggested it
- You have not profiled your application
- “Add Redis” was faster than “fix the query”
- You are one person with one binary and SQLite and everything works fine
The distinction is not technical. The distinction is diagnostic. Redis is medicine. Medicine for a disease you’ve diagnosed is treatment. Medicine for a disease you haven’t diagnosed is hope. Hope costs £3,000 a month.
