System.Web.Caching.Cache Insert和Add方法的区别

  • Add()

    object Add(string key, object value, CacheDependency dependencies, DateTime absoluteExpiration, TimeSpan slidingExpiration, CacheItemPriority priority, CacheItemRemovedCallback onRemoveCallback);
    
  • 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);  //依赖+优先级+回调
    

    比较、区别

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

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

        c). 添加重复缓存情况下(Key已存在),Insert会替换该项,而Add方法则不执行任何操作,并返回原来保存的object对象(Update 2014-03-18)。

      过期策略

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

posted @ 2022-01-17 14:40  码农阿亮  阅读(163)  评论(0编辑  收藏  举报