Start here. This is the direct spoken answer to practice first.
Why this question matters
An in-memory cache belongs to one process, while a distributed cache is shared across application instances. That boundary determines consistency, network cost, serialization, scale-out behavior, and what happens when the cache dependency fails.
An in-memory cache lives inside one application instance. It is fast and simple, but each instance has its own copy. A distributed cache like Redis is shared by multiple app instances, so it is useful when scaled-out servers need a common cached view. The trade-off is that Redis adds network calls, serialization, deployment, monitoring, and outage behavior.