ASP.NET缓存管理

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;
			}
		}
	}
原文地址:https://www.cnblogs.com/LoveTomato/p/9114834.html