zoukankan      html  css  js  c++  java
  • asp.net,缓存Cache

    缓存Cache:
    1>直接使用Cache["content"],缓存与Session不同,所有用户都可以共享。永不过期,由服务器自己维护,当内存不够时,会将老的缓存释放掉。
    2>设置绝对过期日期。Cache.Insert("nowTime", DateTime.Now, null, DateTime.Now.AddSeconds(7), TimeSpan.Zero);
    3>设置滑动过期日期: Cache.Insert("nowTime", DateTime.Now, null, DateTime.MaxValue, TimeSpan.FromSeconds(5));
    ---------------------------------------------------------------------------
    if (Cache["nowTime"] == null)
    {
        Cache.Insert("nowTime", DateTime.Now, null, DateTime.MaxValue, TimeSpan.FromSeconds(5));
    
    }
    else
    {
        Response.Write("缓存中的时间:" + Cache["nowTime"]);
    }
    //---------------------------------------------------------------------------
    
    
    页面缓存:
    当一个请求过来的时候,如果已经有该页面的缓存则不再继续创建该页面的对象了。在asp.net应用程序的生命周期中第6-7个事件的时候查找获取缓存对象。
    <%@ OutputCache Duration="10" VaryByParam="*" %>
    过期时间10秒,当请求的参数不同的时候,缓存立刻失效。
    //--------------------------------------------------------------------
    
    数据源缓存:
    ---手动获取数据到集合,把集合放到Cache缓存中。每次访问页面的时候先检查Cache中是否有缓存,如果有就直接获取缓存中的数据。为Cache设置绝对过期时间.
    
    ---服务器端控件缓存,数据源控件缓存。---------------------------------------
    设置控件的:EnableCaching="true"、CacheDuration="10"、CacheExpirationPolicy="Absolute"
    
    <asp:ObjectDataSource CacheExpirationPolicy="Absolute" EnableCaching="true" CacheDuration="10" ID="ObjectDataSource1"
          runat="server" SelectMethod="GetAllComments" TypeName="Ajax.CRUD.BLL.TblCommentsBll">
    </asp:ObjectDataSource>
    --------------------------------------------------------------------
    -------------------(*)配置IIS输出缓存对静态文件缓存
    选择IIS→网站→输出缓存→添加
    //================================================================================
    
    
    缓存依赖。
    ---依赖文件,只要文件发生变化,则缓存失效。
    Cache.Insert("Time", DateTime.Now.ToString(), new System.Web.Caching.CacheDependency(Request.MapPath("test.txt")));
    
    ---依赖数据库改变-----------------------
    //=======================================================================================
    
    
    数据库缓存依赖
    1、数据库缓存依赖
    -S服务器名称  -E集成身份验证  -ed启动 -d数据库名称  -et指定缓冲依赖的表名 -t表名
    在vs2010的命令提示符中运行(切换到aspnet_regsql.exe所在的目录)
    aspnet_regsql -S steve-pc -E -ed -d apsxDb -et -t TblComments
    
    缓存依赖禁用该数据库
    aspnet_regsql -S steve-pc -E -dd -d apsxDb
    
    2、依赖于数据库的web.config配置
    <system.web>
      <caching>
          <sqlCacheDependency enabled="true">
            <databases>
              <add name="apsxDbEntityName" connectionStringName="connStr" pollTime="500"/>
            </databases>
          </sqlCacheDependency>
        </caching>
      </system.web>
    
    3、 System.Web.Caching.SqlCacheDependency dep = new System.Web.Caching.SqlCacheDependency("apsxDbEntityName", "Aspx_Students");
        Cache.Insert("list", list, dep, System.Web.Caching.Cache.NoAbsoluteExpiration, System.Web.Caching.Cache.NoSlidingExpiration);
    
    缓存使用场景第一个:访问量大,变化比较少   典型场景:京东菜单项变化比较少,访问又特别大 
    //=========================================================================================
  • 相关阅读:
    2014-写给明年现在的自己
    DDD 领域驱动设计-Value Object(值对象)如何使用 EF 进行正确映射
    DDD 领域驱动设计-在动手之前,先把你的脑袋清理干净
    醍醐灌顶:领域驱动设计实现之路
    拨乱反正:DDD 回归具体的业务场景,Domain Model 再再重新设计
    设计窘境:来自 Repository 的一丝线索,Domain Model 再重新设计
    No zuo no die:DDD 应对具体业务场景,Domain Model 重新设计
    拨开迷雾,找回自我:DDD 应对具体业务场景,Domain Model 到底如何设计?
    【记录】GitHub/TortoiseGit 修改邮箱/提交者
    死去活来,而不变质:Domain Model(领域模型) 和 EntityFramework 如何正确进行对象关系映射?
  • 原文地址:https://www.cnblogs.com/han1982/p/4066335.html
Copyright © 2011-2022 走看看