I fell in love with caching when I first started playing with it in the early versions of the ASP.NET alphas. I was aware of caching before that, but I'd never really gone to the effort to seriously implement a cache engine in an ASP app, and with ASP.NET, I didn't have to. The thing that attracts me to caching is its impact on performance without requirements (usually) for major re-architecture of the system.
In this article, I'm going to discuss what I call Micro Caching, because it involves caching things for very brief periods. One of the major downsides of caching in general is that by definition the data is not fresh. How big a problem this is depends on the application and the user's requirements, which is why it is important to determine the user's tolerance for stale data when gathering requirements. The knee-jerk answer is going to be 'I need live data all the time', but hopefully with the data in this article, you will be able to convince the user/client that perhaps it would be ok if the data were, say, a second or two old, if it meant they could host the application on half as much hardware.