zoukankan      html  css  js  c++  java
  • Cache 概述

    基本用法

    using System.Web.Caching
    DataSet ds=new DataSet();
    //
    Cache.Insert("Data",ds);

    将DataSet中的数据缓存,不设置过期时间。

    Cache.Insert("Data",ds,null,DateTime.Now.AddMinutes(2),TimeSpan.Zero);

    绝对时间过期,缓存在2分钟后将过期。

    Cache.Insert("Data",ds,null,DateTime.MaxValue,TimeSpan.FromMinutes(2));

    平滑时间过期,缓存在连续2分钟没有访问则过期。

    Cache.Add方法也可添加缓存,但只能添加缓存中没有项,有则失败,但不出异常;而Cache.Insert方法能覆盖原来的重复项。

    缓存依赖

    CacheDependency  cd=new CacheDependency (Server.MapPath("myFile.txt"));
    DataSet ds
    =new DataSet ();
    //
    Cache.Insert ("Data",ds,cd);

    myFile.txt文件被修改后,缓存失效,否则缓存一直存在。

    缓存更新策略
    一般做法:

    DataSet ds = new DataSet();
    //
    if (Cache["Data"== null)
    {
        ds 
    = GetData();
        Cache.Insert(
    "Data", ds, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero);
    }

    else
    {
        ds 
    = (DataSet)Cache["Data"];
    }

    此为被动更新,如果缓存为空,则为数据库获取数据,如果缓存不为空,则直接从缓存中获取数据。缺点就是如果缓存失效时,去访问数据得从数据库中查询,花费时间。可以利用缓存的回调功能让缓存过期后自动续建,实现自动更新的目的。

    protected void CacheCallback(string key, object value, CacheItemRemovedReason remov)
    {
            
    //缓存过期处理方法
    }
    DataSet ds = new DataSet();
    //
    Cache.Insert("Data", ds, null, DateTime.Now.AddMinutes(2), TimeSpan.Zero, CacheItemPriority.Default, CacheCallback);

    缓存过期时回调用CacheCallback方法实现自动更新。

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/chy710/p/963081.html
Copyright © 2011-2022 走看看