ASP.NET缓存

缓存是以空间来换取时间的手段。

缓存是改进网站性能的第一个手段,就像索引时改进数据库性能的第一个手段一样。


主要有三种缓存:

①页面缓存

<%@ OutputCache Duration="15" VaryByParam="none"%>标签就可以启用页面缓存,这样整个页面都会被缓存。

页面中代码、数据源在缓存期间都不会被执行,而是直接输出缓存页面的内容。

Duration表示缓存的时间,以秒为单位。

缓存是针对这个页面的所有访问者,它们在此期间访问的页面都会是一样的。

对于参数访问的页面,如news.aspx?id=1,news.aspx?id=2可以设置VaryByParam="id",VaryByParam="id,number"(多参数),VaryByParam="*"(任何参数)


②数据源缓存

设定ObjectDataSource的CacheDuration(缓存时间:秒),EnableCaching=true。这样每隔CacheDuration秒才会调用SelectMethod指定的方法来执行数据库查询,其他时间都是直接返回缓存的数据。

缓存固定的时间适合于首页、文章列表等访问频繁的页面,对于看帖页面则不适合,假如有100万个贴子,如果每个贴子固定缓存1小时,而1小时内有10万贴子被看了,那就需要缓存10万个贴子,内存占用会非常大。

解决方法是使用“滑动窗口”的策略:一个贴子缓存10分钟,如果10分钟之内又访问了,则缓存失效的时间改为从此刻开始的10分钟。这样的话,经常访问的贴子会被长期缓存。设置方法:CacheExpirationPlicy="Sliding"

③数据缓存

。。。

 

你可能感兴趣的:(asp.net)