Some time ago I wrote a post on scalability. In it, I mentioned caching as one of the most important techniques to help our system scale. Today, I want to take advantage of that fact and dive deeper into caching itself.
Today, I will walk you through basic definitions, the most common problems with caching, different caching eviction algorithms (or cache algorithms), mention the most commonly used tools, and share some best practices when working with cache.