What's the difference between cache invalidation and eviction?

Invalidation is primarily about correctness — the cached value should no longer be considered valid because the underlying data changed or its freshness window expired.

Eviction is primarily about cache resource management — removing an entry to free space or according to a cache policy such as LRU or LFU. An entry can be valid but evicted, or stale but still physically present until it’s removed.

InvalidationEviction
Main concernCorrectnessCapacity
Why?Data became staleCache needs space
Who usually triggers it?Application/business eventCache system
Does value have to be stale?Usually yesNo
ExampleProduct price changedRedis is full
Typical mechanismDelete/update/versionLRU/LFU/TTL policy