zoukankan      html  css  js  c++  java
  • asp.net数据缓存(应用程序缓存)

    应用程序缓存是用来存储与应用程序相关的对象,主要是由Cache类来实现的。
    命名控件: using System.Web.Caching;
    添加缓存
    1
    、指定键和值
       Cache["key"] = "value";
    这种方法添加缓存最方便,但是如果需要设置缓存的有效期、依赖项等特性,它就变得无能为力了
    2
    、使用Add()方法——只用于在ASP.NET缓存中添加新的缓存项(如果用它覆盖现有的缓存项,则会失败)
       Cache.Add("key","value",CacheDependency,DateTime,TimeSpan,CacheItemPriority,CacheItemRemovedCallbac);
      
    这种方法适用于需要设置缓存的有效期、依赖项等特性的缓存,但是要注意它的7个参数必须写完整才能生效,所以灵活性不够好。
      
    参数说明:
      
    第一个参数:key——表示引用缓存对象的键(键)
      
    第二个参数:value——表示要缓存的对象(值)
      
    第三个参数:CacheDependency——表示添加依赖项(允许指定一个文件或缓存键。如果文件发生变化,对象就被删除。如果缓存键发生变化,对象也被删除)
      
    第四个参数:DateTime——表示绝对过期时间(指明缓存数据过期的时间)
      
    第五个参数:TimeSpan——表示可调过期时间又叫弹性的过期时间。指明缓存数据在上一次访问后可以在缓存中保留多长时间(也就是说在相对过期时间内,以相对过期时间剩余时间点为起点再进行相对过期时间。TimeSpan.Zero表示没有指定可调过期时间)()
      
    第六个参数:CacheItemPriority——表示优先级,当在缓存被填满的时候删除那些优先级低的数据
      
    第七个参数:CacheItemRemovedCallbac——表示回调自定义的方法(示例:可以在缓存项从缓存中删除时要求通知),它的类型是CacheItemRemovedCallback类型的
      
      
    示例一:(指定一个5分钟绝对过期时间)
             Cache.Add("key","value",null,DateTime.Now.AddMinutes(5),TimeSpan.Zero,CacheItemPriority.Normal,null);   //
    创建一个指定5分钟绝对过期时间的缓存
      
      
    示例二:(指定一个5分钟的弹性过期时间,没有指定绝对过期时间)
           Cache.Add("key","value",null,DateTime.MaxValue,TimeSpan.FromMinutes(5),CacheItemPriority.Normal,null);    //
    创建一个指定5分钟弹性过期时间的缓存
      
    示例三:(过期时间也取决于一个文件的修改)
      //
    过期时间取决于test.xml文件修改。也就是说当test.xml文件内容修改时此缓存就会过期
         CacheDependency dependency = new CacheDependency("C:\test.xml");
         //
    创建一个依赖文件修改而过期的缓存
         Cache.Add("key","value",dependency,DateTime.MaxValue,TimeSpan.FromMinutes(5),CacheItemPriority.Normal,null);
      
    示例四:(过期时间取决于缓存中另一项的修改)
             Cache.Add("key1","value",null,DateTime.MaxValue,TimeSpan.Zero,CacheItemPriority.Normal,null); //
    当缓存key1的值修改时,缓存key2就会过期
         //
    添加爱到数组中
         String[] dependencyKeys = new String[1];
         dependencyKeys[0] = "key1";
         CacheDependency dependency = new CacheDependency(null, dependencyKeys);
         //
    创建一个依赖另一个缓存修改而过期的缓存
         Cache.Add("key2","value",dependency,DateTime.MaxValue,TimeSpan.Zero,CacheItemPriority.Normal,null);
        
    示例五:(缓存过期后回调方法)
         public void ItemRemovedCallback(String key, Object value, CacheItemRemovedReason reason){} //
    缓存过期将要调用的方法
         //
    创建一个当指定5分钟的弹性过期时间后调用ItemRemovedCallback方法的缓存
         Cache.Add("key","value",null,DateTime.MaxValue,TimeSpan.FromMinutes(5),CacheItemPriority.Normal,new CacheItemRemovedCallback(this.ItemRemovedCallback));

    优先级值顺序

    含义

    High

    设为此优先级的缓存项是最不可能在内存不足时被删除的

    AboveNormal

    设为此优先级的缓存项比优先级为Normal或以下的缓存项更优先保留

    Normal

    设为此优先级的缓存项比优先级为BelowNormal和Low的缓存项更优先保留

    BelowNormal

    这是倒数第二级的优先级;设为此优先级的缓存项只比优先级设为Low的缓存项更优先保留

    Low

    设为此优先级的缓存项是最有可能在内存不足时被删除的

    Default

    缓存项的优先级的默认值是Normal

    NotRemovable

    当缓存项设为此优先级时,是在告诉ASP.NET即使是内存不足,也不要从缓存中删除它

    3、使用Insert()方法——用于覆盖ASP.NET缓存中现有的缓存项。   这种方法可以实现多种方式的方法重载,使用起来比较灵活(但主要用法和Cache.Add用法差不错)

    Cache.Insert("key","value");


         示例一:(键值添加)
           Cache.Insert("key1","value1");
          
    示例二:(添加依赖项的缓存)
       Cache.Insert("key","value",System.Web.Caching.CacheDependecy(null,dependencies));
          
    示例三:(添加有效过期时间的)
           Cache.Insert("key","value",DateTime.Now.AddMinutes(1d),System.Web.Caching.Cache.NoSlidingExpiration);
      
    示例四:(添加优先级的缓存)
         Cache.Insert("key","value",null,System.Web.Caching.Cache.NoSlidingExpiration,System.Web.Caching.Cache.NoSlidingExpiration,System.Web.Caching.CacheItemPriority.High,null);
    4
    、检索缓存
        if (Cache["key"] != null)
        {    //
    处理语句 }
    5
    、移除缓存
       (1)
    自动移除
         
    出现缓存已满、或过期、依赖项更改等情况时,缓存项就会自动移除
       (2)
    显示移除
          Cache.Remove("key");

  • 相关阅读:
    SharePoint:扩展DVWP 第33部分:修改DVWP中的合计和分类汇总
    通过SharePoint Web服务更新审批状态
    SharePoint:扩展DVWP 第29部分:修改Remove模版上的表单操作工作流
    SharePoint:扩展DVWP 第27部分:为DVWP添加一个备用编辑模版
    SharePoint 2010之Visio Services入门1-2-3
    一步一步开发属于自己的SharePoint 2010工作流
    在SharePoint 2010中创建自定义字段类型
    SharePoint:扩展DVWP 第25部分:通过SPServices创建列表项实现审计跟踪
    欢迎参加天津PDC Party的活动
    SharePoint:扩展DVWP 赠送部分:当“找不到匹配项”时修复Insert表单操作
  • 原文地址:https://www.cnblogs.com/jinpn/p/4491382.html
Copyright © 2011-2022 走看看