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;
            }
        }
    }

猜你喜欢

转载自www.cnblogs.com/LoveTomato/p/9114834.html