title: Asp.Net Caching and memory leaks when removing items from Cache
body: <p>So I'm trying to introduce some caching into my Asp.Net application. New data for the user is returned from the DB in the form of large datasets. Whenever a user requests data I insert this dataset into the <code>HttpRunTime.Cache</code>. At the moment I'm setting their caching time to 2-3 hours. And these are really large datasets and I put them in Cache quite frequently with different keys. What I'm worried about are the memory leakage implications of doing this. Would Asp.Net take care of excessive data in Cache and remove it? Also when a cached item is removed by Asp.Net or by me using <code>Cache.Remove()</code>, is only the reference to the dataset removed or the dataset is also garbage collected from memory? Is there a scenario in which datasets might be 'removed' from cache but still existing in memory creating performance issues? Is there a way to explicitly 'garbage collect' them if this is the case?</p>