Cache Strategy Basics: Measuring Software Speed, Invalidation First, and When to Add a Cache to an Application