Cache
是分配在服务器上的一个公共的内存片,所谓公共指的cache只要一创建是任何一个客户端浏览器都可以通过后台代码访问到它,它面向的是所有用户,相对而言session也是服务器上的一
段内存,但他面向的是单个用户。它是服务器的一段内存块,也就是说每个cache一经创建就占用了服务器资源的。所以从这点来说我们就可以说:并不是
cache越多越好。cache 是有时间限制的,超过了服务器设定的过期时间,它就会被服务器回收。cache
可以存放任何对象。下面简单介绍一下cache的用法:
1.cache的创建
cache.Insert(string
key,object value,CacheDependency dependencies,DateTime
absoluteExpiration,TimeSpan
slidingExpiration)//只介绍有5个参数的情况,其实cache里有很
几种重载
参数一:引用该对象的缓存键
参数二:要插入缓存中的对象
参数三:缓存键的依赖项,当任何依赖项更改时,该对象即无效,并从缓存中移除。 null.">如果没有依赖项,则此参数包含 null。
参数四:设置缓存过期时间
参数五:参数四的依赖项,如果使用绝对到期,null.">slidingExpiration parameter
must
beNoSlidingExpiration.">则 slidingExpiration 参数必须为 NoSlidingExpiration
2.销毁cache
cache.Remove(string
key)//key为缓存键,通过缓存键进行销毁
3.调用cache
例如你存的是一个DataTable对象,调用如下: DataTable
finaltable = Cache["dt"] as
DataTable;
4.一般什么时候选用cache
cache一般用于数据较固定,访问较频繁的地方,例如在前端进行分页的时候,初始化把数据放入缓存中,然后每次分页都从缓存中取数据,这样减少了连接数据库的次数,提高了系统的性能。
下面写一个demo,一般是怎么操作cache的:
DataTable
dtList =
SerializeUtils.DeSerialize(DALServiceFactory.Create_LianMeng().Show_DAFAchannel(BeginTime,
EndTime, 1410)) as
DataTable;
if
(dtList.Rows.Count >
0)
{
Cache["dt"]
=
dtList;
Cache.Insert("keydt",
dtList, null, DateTime.Now.AddDays(1),
System.Web.Caching.Cache.NoSlidingExpiration);//创建缓存
}
调用缓存时的操作:
if
(Cache["dt"] !=
null){
Cache.Get("keydt");
DataTable
finaltable = Cache["dt"] as
DataTable;
}