What is the difference between HttpRuntime.Cache and HttpContext.Current.Cache?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
I find following detail from http://theengineroom.provoke.co.nz/archive/2007/04/27/caching-using-httpruntime-cache.aspx
For caching I looked into using
HttpContext.Current.Cache but after
reading other blogs I found that
caching using HttpContext uses
HttpRuntime.Cache to do the actual
caching. The advantage of using
HttpRuntime directly is that it is
always available, for example, in
Console applications and in Unit
tests.Using HttpRuntime.Cache is simple.
Objects can be stored in the cache and
are indexed by a string. Along with a
key and the object to cache the other
important parameter is the expiry
time. This parameter sets the time
before the object is dropped from the
cache.
Method 2
Caching using HttpContext uses HttpRuntime.Cache to do the actual caching. The advantage of using HttpRuntime directly is that it is always available in console applications and in unit tests.
Method 3
Using HttpRuntime.Cache is simple to use than HttpContext.Current.Cache.As already said that objects can be stored in the cache and are indexed by a string.Also in unit test and console HttpRuntime this available.
Here is an example to use HttpRuntime.Cache.
public static XmlDocument GetStuff(string sKey)
{
XmlDocument xmlCodes;
xmlCodes = (XmlDocument) HttpRuntime.Cache.Get( sKey );
if (xmlCodes == null)
{
xmlCodes = SqlHelper.ExecuteXml(new dn("Nodes", "Node"), "Get_Stuff_From_Database", sKey);
HttpRuntime.Cache.Add(sKey, xmlCodes, null,
DateTime.UtcNow.AddMinutes(1.0),
System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Normal, null);
}
return xmlCodes;
}
What this example does actually:
The method GetStuff takes a string parameter which is used to retrieve a set of items from the database. The method first checks to see if an XmlDocument indexed by the parameter key is in the cache. If it is, it simply returns this object, if not it queries database. After it has retrieved the document from the database it then put it into cache. If this method is called again within the stipulated time, it will get the object rather than hitting the database.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0