Cache
是将一些数据保存服务器内存,Asp.net可以根据服务器的使用情况,来动态管理管理内存(在内存不足时系统可能会删掉某些缓存)。开发者可以将一些频繁读取不经常变的数据保存到缓存,以提效率,因CPU从缓存中获取数据是最快的。
缓存注意点
- 缓存控件是有效的,不能保存所有的数据
- 缓存的有效时间,根据不同需求可以设置绝对时间和滑动有效时间
- 缓存依赖项,当依赖项变化时缓存删除,依赖项包括文件依赖项和数据库依赖项
- 缓存可能失效
缓存依赖
在开发中可将频繁查询且数据量不的的数据库中的表保存到缓存,提高查询效率。当数据库表中数据变化时缓存无效,这里利用缓存数据库依赖项(目前只支持SQL),一个缓存可以通过AggregateCacheDependency
依赖多个缓存依赖项.
public class CacheManager
{
public static List<Person> persons
{
get {
HttpContext context = HttpContext.Current;
List<Person> list = context.Cache["Persons"] as List<Person>;
if(list == null)
{
//从数据库中读取....省略了
//保存到缓存
// 第一个参数:数据库名称; 第二个表名
SqlCacheDependency perdepen = new SqlCacheDependency("North", "Persons");
context.Cache.Add("Persons", list, perdepen, Cache.NoAbsoluteExpiration,new TimeSpan(1, 0, 0), CacheItemPriority.Normal,(k,v,reason)=> { });
}
return list;
}
}
}