首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ASP.NET 缓存:方法和最佳实践

原文链接:http://msdn.microsoft.com/zh-cn/library/aa478965.aspx   ASP.NET 提供三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(...内存现在非常便宜 — 因此,通过以智能的方式在整个应用程序中实现缓存,可以获得很大的性能提高。 缓存可以掩盖许多过失 缓存是一种无需大量时间和分析就可以获得“足够良好的”性能的方法。...缓存 API,使用 Cache 对象 页面级和用户控件级输出缓存的确是一种可以迅速而简便地提高站点性能的方法,但是在 ASP.NET 中,缓存的真正灵活性和强大功能是通过 Cache 对象提供的。...要包括特定的缓存依赖项,可使用 Add() 或 Insert() 方法。其中每个方法都有几个重载。...对 ASP.NET 提供的缓存选项的深刻理解是任何 ASP.NET 开发人员应该掌握的重要技巧。 Steven A.

1.6K20

ASP.NET cache缓存的用法

第一,数据可能会被频繁的被使用,这种数据可以缓存。 第二,数据的访问频率非常高,或者一个数据的访问频率不高,但是它的生存周期很长,这样的数据最好也缓存起来。...第三是一个常常被忽略的问题,有时候我们缓存了太多数据,通常在一台X86的机子上,如果你要缓存的数据超过800M的话,就会出现内存溢出的错误。所以说缓存是有限的。...换名话说,你应该估计缓存集的大小,把缓存集的大小限制在10以内,否则它可能会出问题。在Asp.net中,如果缓存过大的话也会报内存溢出错误,特别是如果缓存大的DataSet对象的时候。...你应该认真分析你的程序。根据实际情况来看哪里该用,哪里不该用。如:cache用得过多也会增大服务器的压力。整页输出缓存,又会影响数据的更新。 如果真的需要缓存很大量的数据,可以考虑静态技术。...下面介绍HttpRuntime.Cache常用方法: using System; using System.Web; using System.Collections; public

1.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ASP.NET 缓存(3)

    当asp.net页面框架收到一个缓存的页面,它会自动的触发你的回掉方法来获取动态内容。然后将你的内容插入到缓存的html页面中。...好处是即使你的页面还没被缓存,ASP.net仍然可以调用你的回调方法获取动态内容。本质上,这个方法就是你的方法被调用,产生动态内容,可以保证你方法总是被调用,并且他的内容不会被缓存。...这个生成动态内容的方法要是static,因为asp.net需要调用改方法,即使没有实例的情况下。(很显然,让你的页面是从缓存中来,你的页面没有被创建)。...事实上,ASP.net提供了实现缓存后替换的快捷方式,采用Substitution 控件(在控件栏里可以找到),拖拽到页面既可以。...记住,缓存后替换只允许执行静态方法。ASP.net会跳过页面生命周期,这意味着它不会创建任何控件对象,或者触发控件事件。

    76420

    ASP.NET 缓存 Cache

    ASP.NET 提供一个功能完整的缓存引擎,页面可使用该引擎通过 HTTP 请求存储和检索任意对象. 缓存的生存期与应用程序的生存期相同,也就是说,当应用程序重新启动时,将重新创建缓存。...Add 方法与 Insert 方法具有相同的签名,但它返回表示您所添加项的对象 DateTime absoluteExpiration=DateTime.MaxValue; TimeSpan slidingExpiration...Insert 方法灵活,使用Add 方法时必须提供7个参数,Insert 方法重载4次,我们可以根据需要选择适当重载方法 从缓存中取得数据 方式1: string str=(string)Cache.Get...("txt4","4",null,System.Web.Caching.Cache.NoAbsoluteExpiration,slidingExpiration); 缓存项的优先等级 当承载 ASP.NET...当向缓存添加项时,可以为其分配与缓存中存储的其他项相比较的相对优先级。在服务器处理大量请求时,分配了较高优先级值 的项被从缓存删除的可能性较小,而分配了较低优先级值的项则更有可能被删除。

    1.3K50

    ASP.NET MVC编程——缓存

    1 服务端缓存 1.1请求域内的缓存:HttpContext.Items 类型: HttpContext.Items的类型为IDictionary,且键和值都是object类型 访问性: 只存在于当前请求范围内...缓存依赖: Cache提供了下面的方法来设置缓存依赖 public object Add(string key, object value, CacheDependency dependencies,...} } 缓存位置枚举值为: public enum OutputCacheLocation { //输出缓存可位于产生请求的浏览器客户端、参与请求的代理服务器(或任何其他服务器...,过期时间为这里设置的20s 1.5甜甜圈缓存 只缓存页面的外围部分,允许一部分内容动态变化。...ASP.NET MVC 不支持甜甜圈缓存,使用MvcDonutCachingNuGet包扩展了HTML方法,支持这种缓存方式。

    1.9K60

    ASP.NET Core中的缓存:如何在一个ASP.NET Core应用中使用缓存

    除了这个独立的缓存系统之外,ASP.NET Core还借助一个中间件实现了“响应缓存”,它会按照HTTP缓存规范对整个响应实施缓存。...不过按照惯例,在对缓存进行系统介绍之前,我们还是先通过一些简单的实例演示感知一下如果在一个ASP.NET Core应用中如何使用缓存。...如果我们在一个ASP.NET Core应用对MemoryCache服务在启动时做了注册,我们就可以在任何地方获取该服务对象设置和获取缓存数据,所以针对缓存的编程是非常简单的。...虽然基于内存的缓存具有最高的性能,但是由于它实际上是将缓存数据存在承载ASP.NET Core应用的Web服务上,对于部署在集群式服务器中的应用会出现缓存数据不一致的情况。...二、基于Redis的分布式缓存 Redis数目前较为流行NoSQL数据库,很多的编程平台都将它作为分布式缓存的首选,接下来我们来演示如何在一个ASP.NET Core应用中如何采用基于Redis的分布式缓存

    2.6K110

    Asp.Net Cache缓存技术学习

    本文参考自Fish Li的细说 ASP.NET Cache 及其高级用法 一、前言,相信大多数做网站开发的都知道缓存技术对于网站的重要性,它对于网站的性能优化起着至关重要的作用....关于缓存的技术大致有如下几个:Memcache、Redis等等,本人才疏学浅只知道这么几个..。...二、简介 这篇随笔主要介绍的是Asp.net 自带的缓存技术Cache,因为我本人是一个Asp.Net开发者,废话不多说了,进入正题....... 1、为什么要使用缓存?...因为Asp.Net页面都是动态的,动态就是说:"页面的内容随着不同用户访问持续的更新数据"。...红框内的过程是需要计算成本的也就是说,用户每访问一次该网站,都会消耗服务器的资源,假设网站每天有100万的访问量,每分钟有1000人次访问,而且用户的每一次点击都会让服务器进行计算操作,这样对数据库和服务器的压力是非常大的

    1.4K80

    ASP.NET 2.0 缓存翻译草稿

    ASP.NET 2.0 缓存翻译草稿 命名空间: System.Web.Caching ,这个空间是ASP.NET的基础结构中的重要部分,比如:session就是存储在cache中的。...private是被系统组件保留使用的;只有public的才是留给程序员的接口,可以使用IEnumerable接口来枚举public状态下的数据 ASP.NET 提供了3中级别的cache: ?...Programmatic caching---通过public Cache API 编程缓存数据; 在 ASP.NET 2.0 中page level 的缓存机制被扩展到支持依赖数据库的缓存。...也就是可以把page level页面缓存数据和数据库表中的数据设置为依赖。当数据表中数据变动后page level的缓存就自动失效,这可就解决了page level缓存时间不好控制的难处。...ASP.NET 2.0 还提供了SqlCacheDependency 和CacheDependency 两个缓存相关类。

    1K10

    ASP.NET集群内容缓存工具NWebCache

    Alachisoft 发布的NWebCache,这是一个ASP.NET集群内容缓存工具。NWebCache缓存动态页面和根据数据库依赖,当数据库修改时保持同步。...NWebCache同时提供基于session的缓存,允许多个session共享缓存内容,也允许不同session分别缓存页面内容。...NWebCache几乎可以缓存所有类型的响应,包括ASP.NET输出,视图状态,HTML 页面,图片,脚本文件,PDF文件等。...任何HTTP/HTTPS请求,只要需要与web服务器通讯都会通过NWebCache提供集群缓存代理服务。通过使用 NWebCache集群缓存,可以大幅度减少服务器资源开销,同时能让服务器更快响应。...technet杂志有篇文章 ASP.NET Web 缓存增强性能和可伸缩性 主页:http://www.alachisoft.com/nwebcache/index.html 下载:http://www.alachisoft.com

    1.6K80

    细说ASP.NET Core静态文件的缓存方式

    本文指在这三个方面,在ASP.NET Core中静态文件的实现过程和使用方法进行阐述。当然也可以考虑使用反向代理的方式(例如IIS或Nginx),这些不是本文讨论的内容。   ...虽然这不是唯一缓存文件的方式,我们还可以通过ResponseCacheAttribute特性为ASP.NET Core Mvc的Controller和Action进行缓存的设置。...二、StaticFileMiddleware   1.文件服务与默认缓存规则   当创建一个ASP.NET Core的项目时,查看Startup.Configure方法,就会看到默认模板生成的添加StaticFileMiddleware...中间件的方法。...下面我们看看文件缓存在ASP.NET Core中是如何判断缓存失效的?.NET Core开源的代码为我们提供了了解它的入口【代码 Source Code】。

    2.3K20

    ASP.NET Core ResponseCache进行缓存操作

    ASP.NET Core对于HTTP缓存分为两种: 客户端(浏览器缓存) 服务端缓存 客户端缓存 通过设置HTTP的响应头 Cache-Control 来完成页面存储到浏览器缓存中如下所示: ?...MVC 操作(方法) – 方法级特性覆盖类级特性中指定的设置。 [ResponseCache] 参数 Duration 设置缓存的存储时间(以秒为单位)。...服务端缓存可以缓存页面数据和API数据,同时如果我们服务端存在数据,也就是缓存命中的情况下,会直接从缓存中取,不会再进入我们的方法。...严格需要中间件的 [ResponseCache] 属性的唯一参数 VaryByQueryKeys,这与实际 HTTP 标头不对应。 有关详细信息,请参阅 响应缓存在 ASP.NET Core。...中间件在为缓存的响应提供服务时计算一个新值。 缓存条件 请求必须导致服务器响应,状态代码为200(正常)。 请求方法必须为 GET 或 HEAD。

    3K20

    Redis 入门与 ASP.NET Core 缓存

    目录 基础 Redis 库 连接 Redis 能用 redis 干啥 Redis 数据库存储 字符串 订阅发布 RedisValue ASP.NET Core 缓存与分布式缓存 内存中的缓存 ASP.NET...ASP.NET Core 缓存与分布式缓存 ASP.NET Core 里面有很多定义的标准接口,例如日志、缓存等,这些接口为开发者设置了统一的定义和功能,上层服务不需要变更代码就能切换类库,底层使用哪种库对上层没有影响...内存中的缓存 ASP.NET Core 的内存缓存 ASP.NET Core 内存缓存是指一般是单机(本机)使用的,一般这种内存缓存框架是 System.Runtime 或 Microsoft 包提供的...在内存中缓存、存储数据 在 ASP.NET Core 的内存缓存之外,我们来讨论一下,编写代码时,自己设置的内存缓存是否合理。 我们都知道,使用内存缓存是为了提高代码性能而用的。...IDistributedCache IDistributedCache 接口提供的方法实在太少了,有四个异步方法四个同步方法,这里只介绍异步方法。

    2.1K20

    CodeIgniter启用缓存和清除缓存的方法「建议收藏」

    依靠网页缓存,你的网页可以达到近乎静态网页的加载速度,因为他们将程序输出的结果保存到硬盘上了。 缓存是怎么工作的? CI支持每个页面单独缓存,而且可以设置缓存更新时间。...当一个网页第一次被加载的时候,缓存文件将被保存到application/cache文件夹。下次访问的时候,系统就会直接读取缓存文件,然后返回给用户的浏览器。如果缓存文件过期,它将被删除并重新生成。...启动缓存 启用缓存功能,只需要将下面的代码放入你的任何一个控制器(controller)的方法(function)内: 复制代码 代码如下: $this->output->cache...(n); 其中n是你希望缓存更新的分钟数。...他的出现顺序对缓存并没有影响,所以将它放在你认为最合乎逻辑的地方。一旦上面的代码放到了控制器的方法中,页面就会被缓存。 警告:由于CI存储缓存文件的方式,只有通过view文件的输出才能被缓存。

    94040

    asp中的session使用方法

    但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问 ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。...ASP Session的功能的缺陷   目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷:   进程依赖性:ASP Session...3,Session对象内部有一个缓存,被称为Hibernate第一缓存,他存放被当前工作单元中加载的对象,每个Session实例都有自己的缓存。   ...() :清空Session,清除所有保存在当前Session缓存中的实体对象,终止所有正在执行的方法(eg: save() , update() ,delete() …..)   ...,等到一定时候,再将缓存中的对象保存到数据库中。

    1.4K10

    让Nginx 支持 ASP ASP.NET配置方法

    越来越受到网站开发者的喜欢了。国内大的网站 也都纷纷采用nginx作为生产环境。 大家一起分享: #asp(aspx)支持,将客户端的请求转交给IIS location ~* \....(asp|aspx|asa)nbsp;{    root D:/wwroot;    index index.asp index.aspx;    proxy_pass...范围是在 你需要支持ASP站的Serer内 那段里。其次就是开启IIS的站点。端口用88(可自行修改),站点指向要对应nginx设置的站点。这样才能支持。...下面是我找到的页面的全文章,或许对你们也有用: 以下是nginx配置文件,有一点要注意,不管先装或者后装IIS,都需要修改IIS的默认端口,然后相应的修改配置文件里的IIS相关端口 #asp(aspx)...(asp|aspx|asa)nbsp;{    root /host/wwwroot/www;    index index.asp index.aspx;    proxy_pass

    5K00

    ASP.NET 4 AppFabric 输出缓存提供程序

    隐式缓存使用的两个例子包括ASP.NET会话状态和HTML页面缓存(即输出缓存)。...用于 ASP.NET 的 AppFabric 缓存会话提供程序使用其分布式缓存(可能具有高可用性)作为 ASP.NET 会话的存储库。这一功能是透明的,且无需修改现有的代码就可以使用。...使用方法如下: 1、在Asp.Net 4.0 的web.config文件中添加了关于缓存的配置节,如下所示      ASP.NET MVC控制器的任意一个action方法上时,内容也会通过使用我的ScottOutputCache提供器被缓存和保存起来: ?...3)你可以通过覆盖应用的Global.asax文件中的 GetOutputCacheProviderName() 方法,在每个请求的基础上,动态指定使用哪个输出缓存提供器。

    2K90

    缓存的实现核心方法有哪些

    put()方法 put()方法可以将一个数据放入到缓冲区中。 进行该操作后,postition的值会+1,指向下一个可以放入的位置。capacity = limit ,为缓冲区容量的值。...flip()方法 flip()方法会切换对缓冲区的操作模式,由写->读 / 读->写 进行该操作后 如果是写模式->读模式,position = 0 , limit 指向最后一个元素的下一个位置,capacity...不变 如果是读->写,则恢复为put()方法中的值 get()方法 get()方法会读取缓冲区中的一个值 进行该操作后,position会+1,如果超过了limit则会抛出异常 rewind()方法...该方法只能在读模式下使用 rewind()方法后,会恢复position、limit和capacity的值,变为进行get()前的值 clean()方法 clean()方法会将缓冲区中的各个属性恢复为最初的状态...的值保存到mark属性中 reset()方法会将position的值改为mark中保存的值 使用展示 import java.nio.ByteBuffer; public class demo1 {

    49130
    领券