ASP.NET缓存:缓存应用程序数据_项目管理_非技术区_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 非技术区 > 项目管理 > ASP.NET缓存:缓存应用程序数据

ASP.NET缓存:缓存应用程序数据

 2013/7/29 2:12:53  蒋叶湖  博客园  我要评论(0)
  • 摘要:添加应用程序缓存项1、添加应用程序缓存项可以通过直接指定Cache对象的键值、Cache对象的Insert方法、Cache对象的Add方法实现。2、Cache对象的Insert方法有多个重载方法,通过重载可以指定创建缓存项的依赖,过期时间策略,优先级。3、如果使用Insert方法向缓存添加项,并且已经存在与现有项同名的项,则缓存中的现有项将被替换。4、Add方法没有重载方法;Add方法添加缓存项,将返回缓存中的对象;如果使用Add方法,缓存中已经存在与现有项同名的缓存项
  • 标签:程序 .net ASP.NET net 应用 数据 应用程序 缓存

1、添加应用程序缓存项可以通过直接指定Cache对象的键值、Cache对象的Insert方法、Cache对象的Add方法实现。

2、Cache对象的Insert方法有多个重载方法,通过重载可以指定创建缓存项的依赖,过期时间策略,优先级。

3、class="sentence" data-guid="ceec3770d94ce221c7bc738bd4c2f13d" data-source="If you use the <span><span class="mtpsTagOuterHtml" ><span>Insert</span></span></span> method to add an item to the cache and an item with the same name already exists, the existing item in the cache is replaced.">如果使用Insert方法向缓存添加项,并且已经存在与现有项同名的项,则缓存中的现有项将被替换。

4、Add方法没有重载方法;Add方法添加缓存项,将返回缓存中的对象;如果使用Add方法,缓存中已经存在与现有项同名的缓存项,则已存在的缓存项不会替换,并且不会引发异常

 

logs_code_copy">复制代码
            /**********通过键和值直接设置项向缓存添加项***********/
            Cache["keyCache1"] = "valueCache1";


            /**********通过使用 Insert 方法将项添加到缓存中***********/
            Cache.Insert("keyCache2", "valueCache2");


            /**********通过指定依赖项向缓存添加项***********/
            string[] dependencies = { "keyCache2" };
            Cache.Insert("keyCache3", "valueCache3",
                new System.Web.Caching.CacheDependency(null, dependencies));


            /**********通过指定依赖项向缓存添加项(依赖指定应用缓存)***********/
            Cache.Insert("keyCache4", "valueCache4",
                new System.Web.Caching.CacheDependency(
                    Server.MapPath("XMLFile.xml")));


            /**********通过指定依赖项向缓存添加项(依赖指定文件组)***********/
            string[] fileNames;
            string fileName1 = Server.MapPath("txtFile.txt");
            string fileName2 = Server.MapPath("xmlFile.xml");
            fileNames = new string[] { fileName1, fileName2 };
            Cache.Insert("keyCache5", "valueCache5",
                new System.Web.Caching.CacheDependency(
                    fileNames));


            /**********通过指定依赖项向缓存添加项(依赖指定键和文件)***********/
            System.Web.Caching.CacheDependency dep1 =
                new System.Web.Caching.CacheDependency(Server.MapPath("xmlFile.xml"));
            string[] keyDependcies2 = { "keyCache1" };
            System.Web.Caching.CacheDependency dep2 =
                new System.Web.Caching.CacheDependency(null, keyDependcies2);
            System.Web.Caching.AggregateCacheDependency manyDep =
                new System.Web.Caching.AggregateCacheDependency();
            manyDep.Add(dep1);
            manyDep.Add(dep2);
            Cache.Insert("keyCache6", "valueCache6", manyDep);


           /**********将设有过期策略的项添加到缓存中(绝对过期时间)***********/
            //设置了绝对过期,则不能设置滑动过期
            Cache.Insert("keyCache7", "valueCache7",
                null, DateTime.Now.AddMinutes(1d),
                System.Web.Caching.Cache.NoSlidingExpiration);


          /**********将设有过期策略的项添加到缓存中(滑动过期时间)***********/
            //如果设置了滑动过期,则不能设置绝对过期
            Cache.Insert("keyCache8", "valueCache8",
                null, System.Web.Caching.Cache.NoAbsoluteExpiration,
                new TimeSpan(0, 10, 0));


          /**********将设有优先级设置的项添加到缓存中***********/
            //AboveNormal 优先级高于Normal
            //BelowNormal 优先级低于Normal
          //Default 默认值为Normal优先级
            //High 在释放内存时,该优先级最不可能从缓存中移除
            //Low 该优先级最低
            //Normal 该优先级高于BelowNormal
          //NotRemovable 该优先级不会自动从缓存中移除,但受绝对时间和调整时间影响
            Cache.Insert("keyCache9", "valueCache9",
                null, System.Web.Caching.Cache.NoAbsoluteExpiration,
                System.Web.Caching.Cache.NoSlidingExpiration,
                System.Web.Caching.CacheItemPriority.High, null);


            /**********使用 Add 方法向缓存添加项***********/
            //Add方法没有重载
            //Add方法将返回该缓存的值
            string valueCache10 = Cache.Add("keyCache10", "valueCache10",
                null, System.Web.Caching.Cache.NoAbsoluteExpiration,
                System.Web.Caching.Cache.NoSlidingExpiration,
System.Web.Caching.CacheItemPriority.Default,
null);
复制代码
  •  检索应用程序缓存项的值
复制代码
            string cachedString;
            cachedString = (string)Cache["keyCache1"];
            if (cachedString == null)
            {
                cachedString = "valueCache1";
                Cache.Insert("keyCache1", cachedString);
            }
复制代码
  •  从缓存中移除缓存项

     Asp.net缓存中的数据易丢失。丢失原因:缓存已满,缓存项过期,依赖项发生改变。

        Cache.Remove("keyCache1");
发表评论
用户名: 匿名