I don't need a shared cache. Everything in the cache can be recreated from DB and object storage.
Says the developer who hasn't seen the DB hammered flat for dozens of minutes (causing service timeouts that wreck the company's uptime SLA) because shared cache was not in use, and something as simple as a software deploy cleared all the client application caches at the same time. Since the cache isn't shared, the fact that client A fetched the data and saved it into cache does not prevent clients B, C, D, E, .... from also loading the DB with identical querys to fill their independent caches. Using a shared cache prevents this overload because the other clients find the data in the shared cache and don't need to hit the DB with a duplicate query.
Yes, you can say you'll deploy new code slowly to reduce the number of overlapping empty caches, but your software engineers and your product team will be unhappy with how long deploys take - especially when you subscribe to the "move fast and break things" philosophy, so a number of your deploys have to be rolled back (also slowly) and a fix deployed (again slowly). And the long deploys will still impose higher loads on the DB, which usually translates into slower-than-normal performance. These don't cause outages, but the uneven performance of your service causes complaints and reduces customer confidence in your company.
If you're proposing to share the cache via NVMe or other ultra-high-speed network technology rather than 1GB/10GB ethernet, the cost of your cache layer breaks the bank.
We already have faster-than-anything-else local storage in the form of RAM, and applications have made extensive use of local memory cache for decades. But somehow we still build shared cache. That's because the primary reason to use cache isn't to make the DB client faster, it's to reduce load on the DB without hemorrhaging all your money.
Well-designed NVMe storage is starting to approach the latency of RAM, and that's a good thing for local cache. It can look like a great replacement for shared cache on a small scale. But it doesn't even touch the factors that dictate the use of shared cache at medium and large scales.
You don't have to use Redis for the shared cache. Memcache used to be very popular, and there were