zoukankan      html  css  js  c++  java
  • System.Web.Caching.Cache Insert和Add区别

    System.Web.Caching.Cache  Insert和Add区别

              2.1     Add方法

                        object Add(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);

              2.2     Insert方法

                        void Insert(string key, object value); //永不过期

                        void Insert(string key, object value, CacheDependency dependencies);

                        void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration);

           //绝对时间过期:

                        void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemUpdateCallback onUpdateCallback);

                        void Insert(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);

              2.3     比较、区别

                   a).     Insert方法支持5种重载,使用灵活,而Add方法必须提供7个参数;

                   b).     Add方法可以返回缓存项的数据对象,Insert 返回Void;

                   c).     添加重复缓存情况下,Insert会替换该项,而Add方法会报错。

              2.4  过期策略 (2009-12-7 add 参照来源

                   a).    永不过期         Insert(string key, object value);

                   b).    绝对时间过期

            DateTime.Now.AddSeconds(10)表示缓存在10秒后过期,TimeSpan.Zero表示不使用平滑过期策略。

            例:Cache.Insert("Data", ds,null, DateTime.Now.AddSeconds(10), TimeSpan.Zero);    

                   c).    变化时间过期(平滑过期)

             DateTime.MaxValue表示不使用绝对时间过期策略,TimeSpan.FromSeconds(10)表示缓存连续10秒没有访问就过期。

            例:Cache.Insert("Data", ds, null, DateTime.MaxValue, TimeSpan.FromSeconds(10));

         三、     CacheDependency、AggregateCacheDependency、SqlCacheDependency

              3.1     CacheDependency是AggregateCacheDependency和SqlCacheDependency的父类。主要用于在应用程序数据缓存对象与文件、缓存键、文件或缓存键的数组或另外一个CacheDependency对象之间建立依赖关系。CacheDependency监视依赖关系比便在任何对象更改时自动移除缓存对象。CacheDependency可以监测一组(到文件或目录的)文件路径的更改情况。

              3.2     AggregateCacheDependency主要用于实现聚合缓存依赖。如一笔数据同时对两个表进行缓存依赖,一旦其中任何一个表数据更改缓存将失效。

              3.3     SqlCacheDependency将应用程序数据缓存对象、页面输出缓存、数据源控件等与指定SQL Server数据库表或Sql Server 2005 查询结果之间建立缓存依赖关系,在表发生更改(Sql Server 2005 行级别更改)时,自动从缓存中删除和重新添加与该表关联的缓存对象。一般而言:

                        SqlCacheDependency (SqlCommand)      用于SQL SERVER 2005

                        SqlCacheDependency (数据库名, 表名)      用于SQL SERVER 7.0/2000

  • 相关阅读:
    Java基础学习总结(41)——JPA常用注解
    Java基础学习总结(41)——JPA常用注解
    【云速建站】视频播放专题
    一招教你如何修复MySQL slave中继日志损坏问题
    【nodejs原理&源码赏析(3)】欣赏手术级的原型链加工艺术
    【云速建站】后台数据批量导入导出
    【云速建站】会员注册弹窗添加及设置
    【nodejs原理&源码赏析(2)】KOA中间件的基本运作原理
    【nodejs原理&源码赏析(1)】Express中间件系统的基本实现
    补习系列(5)-springboot- restful应用
  • 原文地址:https://www.cnblogs.com/spider024/p/3043946.html
Copyright © 2011-2022 走看看