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方法实现自动更新。

  • 相关阅读:
    Element ui表单验证结束后再次打开清空验证信息
    oracle 新建用户 给用户设定权限
    oracle时间问题
    ORACLE 创建作业JOB例子
    ORACLE SQL PLUSE 创建作业 执行作业
    VS发布,签名出错 试图加载该页时出错,路径的形式不合法。
    Oracle 系统权限
    PL/SQL Developer 8.0 创建 Oracle Jobs 的疑惑
    信息系统系项目管理考试技巧
    水晶报表分组统计中如何让字段值居中显示
  • 原文地址:https://www.cnblogs.com/chy710/p/963081.html
Copyright © 2011-2022 走看看