Redis is overused in my opinion. For many requests it does not beat a database for the same amount of money. There can be other reasons for using a cache though. I often hear that people claim that the cache “protects” the database. From my experience it is more common that once the database has problems it spills over to the cache. If then for instance a circuit breaker opens to the cache the database will be smacked senseless.
Often, cache is relied on so much that we are afraid to clear it because no one knows what the impact will be on the database. We now duplicate our data in many cases, have to deal with cache invalidation, and ironically create more risk than protection. Cache should be extremely selective and encapsulated very well.
Most projects I work on use a lot of edge caching but it is not business critical. It is for speed. It is a problem if the design depends on both a cache and a database if the cache is dependent on the database.