Cache_总体介绍
Cache 是分配在服务器上的一个 公共的内存片。
Cache面对所有用户,Session也是服务器缓存,但是面向单个用户。
Cache是有时间限制的,吵过了设定时间,服务器将回收。
1..net 4.0 中的缓存功能,主要由三部分组成
System.Runtime.Caching
System.Runtime.Caching 是 .net 4.0 中新增的缓存框架。主要使用MemoryCache 对象,该对象存在于程序集 System.Runtime.Caching.dll中
MemoryCache 继承自ObjectCache,IEnumerable,IDisposable .ObjectCache是一个抽象类.private static ObjectCache memCache=MemoryCache.Default.
System.Web.Caching
System.Web.Caching 是 .net 2.0 就存在的,一般用在web中,如果在winform中使用,要引入 System.Web.Caching.dll
Output Cache .
在ASP.NET 中使用,在 ASP.NET 4.0 之前,直接使用System.Web.Caching.Cache 来缓存Html片段,在ASP.NET 4.0 中进行了重新设计。提供了一个 OutputCacheProvider 供扩展,但是默认情况,仍然使用System.Web.Caching.Cache 来做缓存。
2.System.Web.Caching
System.Web.HttpRuntime.Cache
System.Web.HttpContext.Current.Cache
System.Runtime.Caching.MemoryCache
(1)HttpRuntime.Cache 与 HttpContext.Current.Cache 区别
两者指向的是同一个Cache 对象。
HttpContext. 封装有关个别Http请求的 HTTP特定信息。HttpContext.Current.Cache 为当前的Http请求获取HttpContext对象。
(2)HttpRuntime.Cache 可以实现 Web,控制台,winform 等不同表现形式下的缓存。现在偏多.net framework 4.0 中增强的缓存类 MemoryCache .
3.CallContext
线程的本地存储区专用集合对象。提供对每个逻辑执行线程都唯一的数据槽 。数据槽不在其他逻辑线程的调用上下文之间共享。在多线程和存储DbContext缓存可用到。
4.Session
Session把数据保存在服务器端,每一个用户都有属于自己的Session.与别人的不冲突,也就是说,当你登录到系统中,你的信息(账号,密码)等就会被保存到服务器上一个单独的Session中,当你退出系统时,服务器就会丢掉这个Session,你的数据就没了,必须再次登录,如果登录超时,也会被丢掉。看系统设置。