ASP.NET 2.0 缓存技术 (原创)

简介:

一、SQL Cache 通过配置数据库连接池,只有当数据库数据被改变的时候,缓存才会改变:
          注册连接池 命令:c:\dir aspnet_regsql.exe 专门注册连接池的工具 在sql数据库的数据库改变了,才改变缓存。
         参数: _s 制定注册的服务器、   _e  说明是windows授权模式、 _u和 _p 说明是sql数据库的授权模式、
          _d 指定数据库的名字、_ed 说明缓存生效。
          事例1、   aspnet_regsql.exe _s "\sqlexpress" _e  _d "pubs" _ed  注册到pubs库
         事例2. aspnet_regsql.exe _s "\sqlexpress" _e  _d "pubs" _et _1 "authors" 注册到pubs库的表
         <%@ outputcache duuation="999999" sqldependency="pubs;authors" varybyparam="none"%>在页面中加入
        注意:注册的库不要太多,主要的经常用的注册 最好在两个库以内,也不需要每个库中的的表都注册
二、Output Caching 
      1、 <%@ OutputCache Duration="60" VaryByParam="none" %> 页面的前面加这句就可以
      2、 Duration  缓存的间隔时间   VaryByParam   request是否有返回参数改变
      3、 根据参数缓存  <%@ OutputCache Duration="60" VaryByParam="state" %>
             <SelectParameters>
                <asp:QueryStringParameter Name="state" QueryStringField="state" DefaultValue="CA" />
            </SelectParameters>  这个是在dataview 中设置的
      4、缓存到硬盘 <%@ OutputCache Duration="3600" VaryByParam="name" DiskCacheable="true" %> 
            DiskCacheable 是设置缓存到硬盘
      5、回调缓存  一个页面一部分需要缓存而其他的不需要缓存,实现动态缓存

   <% @ OutputCache Duration="60" VaryByParam="none"  %>
       
< script  runat ="server" >
        Shared Function GetCurrentDate(ByVal context As HttpContext) As String
        Return Now.ToString()
        End Function
    
</ script >
       
< p >
            
< b > Real Time:
                
< asp:Substitution  ID ="Substitution1"  runat ="server"  MethodName ="GetCurrentDate"   />
            
</ b >
        
</ p >
     6、用户控件 的参数缓存
  <% @ OutputCache Duration="60" VaryByControl="pickstate"  %>
       
< SelectParameters >
            
< asp:ControlParameter  ControlID ="pickstate"  DefaultValue ="CA"  Name ="state"  PropertyName ="SelectedValue"   />
        
</ SelectParameters >
三、Fragment Caching
       API缓存,比较复杂,一般不采用这中方法
       API回调缓存
  < script  runat ="server" >

            Shared Function GetCurrentDate(context As HttpContext) As String

             
return DateTime.Now.ToString()
             End Function

         
</ script >
          
< b >    
           Real Time: 
<%  Response.WriteSubstitution(New HttpResponseSubstitutionCallback(AddressOf GetCurrentDate))  %>
四、Data Caching  dataset
< script  runat ="server" >
    Sub Page_Load(ByVal Src As Object, ByVal E As EventArgs)
        Dim Source As DataView

        ' 
try to retrieve item from cache
        ' 
if it's not there, add it
        Source 
= Cache("MyDataSet")

        If Source Is Nothing Then
            Dim MyConnection As SqlConnection
            Dim MyCommand As SqlDataAdapter

            MyConnection 
= New SqlConnection(ConfigurationManager.ConnectionStrings("pubsConnectionString").ConnectionString)
            MyCommand 
= New SqlDataAdapter("select * from Authors", MyConnection)

            Dim ds As New DataSet
            MyCommand.Fill(ds, 
"Authors")

            Source 
= New DataView(ds.Tables("Authors"))
            Cache(
"MyDataSet"= Source

            CacheMsg.Text 
= "Dataset created explicitly"
        Else
            CacheMsg.Text 
= "Dataset retrieved from cache"
        End If

        MyGrid.DataSource 
= Source
        MyGrid.DataBind()
    End Sub
  
</ script >
  这种数据缓存的效率比较高,可以缓存很大的数据量,可以同时缓存到内存和硬盘
五、Web.Config   配置
< caching >
   
< outputCache >
    
< diskCache  enabled ="true"  maxSizePerApp ="2"   />   设置在硬盘中缓存 单位是兆
   
</ outputCache >
   
< outputCacheSettings >
    
< outputCacheProfiles >
     
< add  name ="CacheFor60Seconds"  duration ="60"   />
    
</ outputCacheProfiles >
   
</ outputCacheSettings >
   
<!--
   <sqlCacheDependency enabled="true" pollTime="1000" >
    <databases>
     <add name="PubsDB" connectionStringName="pubsConnectionString" />
    </databases>
   </sqlCacheDependency>
   
-->
  
</ caching >



本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/10/05/248896.html如需转载请自行联系原作者
相关文章
|
1月前
|
监控 Cloud Native 测试技术
.NET技术深度解析:现代企业级开发指南
每日激励:“不要一直责怪过去的自己,他曾经站在雾里也很迷茫”。我是蒋星熠Jaxonic,一名在代码宇宙中探索的极客旅人。从.NET Framework到.NET 8,我深耕跨平台、高性能、云原生开发,践行领域驱动设计与微服务架构,用代码书写技术诗篇。分享架构演进、性能优化与AI融合前沿,助力开发者在二进制星河中逐光前行。关注我,共探技术无限可能!
.NET技术深度解析:现代企业级开发指南
|
7月前
|
机器学习/深度学习 存储 缓存
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
大型语言模型(LLM)的推理效率是AI领域的重要挑战。本文聚焦KV缓存技术,通过存储复用注意力机制中的Key和Value张量,减少冗余计算,显著提升推理效率。文章从理论到实践,详细解析KV缓存原理、实现与性能优势,并提供PyTorch代码示例。实验表明,该技术在长序列生成中可将推理时间降低近60%,为大模型优化提供了有效方案。
1298 15
加速LLM大模型推理,KV缓存技术详解与PyTorch实现
|
5月前
|
缓存 负载均衡 网络协议
电商API接口性能优化技术揭秘:缓存策略与负载均衡详解
电商API接口性能优化是提升系统稳定性和用户体验的关键。本文聚焦缓存策略与负载均衡两大核心,详解其在电商业务中的实践。缓存策略涵盖本地、分布式及CDN缓存,通过全量或部分缓存设计和一致性维护,减少后端压力;负载均衡则利用反向代理、DNS轮询等技术,结合动态调整与冗余部署,提高吞吐量与可用性。文中引用大型及跨境电商平台案例,展示优化效果,强调持续监控与迭代的重要性,为电商企业提供了切实可行的性能优化路径。
|
5月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
207 0
|
7月前
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
270 0
|
11月前
|
开发框架 算法 .NET
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
C#/.NET/.NET Core技术前沿周刊 | 第 15 期(2024年11.25-11.30)
165 6
|
11月前
|
开发框架 Cloud Native .NET
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
C#/.NET/.NET Core技术前沿周刊 | 第 16 期(2024年12.01-12.08)
168 6
|
11月前
|
数据采集 存储 缓存
如何使用缓存技术提升Python爬虫效率
如何使用缓存技术提升Python爬虫效率
|
11月前
|
存储 缓存 负载均衡
从零到一:分布式缓存技术初探
分布式缓存通过将数据存储在多个节点上,利用负载均衡算法提高访问速度、降低数据库负载并增强系统可用性。常见产品有Redis、Memcached等。其优势包括性能扩展、高可用性、负载均衡和容错性,适用于页面缓存、应用对象缓存、状态缓存、并行处理、事件处理及极限事务处理等多种场景。
653 1
|
12月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
157 4