我有一个 ASP.NET 网站,每天有 10-25,000 名访问者(节假日前的峰值超过 60,000 人)。由于它是一个内容网站,因此页面/访问量也很高。
我有一些特定的页面,它们产生了大约 60% 的流量。这些页面有点复杂,并且数据库较多(sql server 2008 r2 后端)。
我想知道是否值得“缓存”这些页面的静态版本(我听说这是可能的)并且仅在发生变化时重新渲染它们(大约每 48 小时一次)。
这听起来是个好主意吗?实施此操作的最佳地点在哪里?
(asp.net、iis、数据库)
Update:看起来对我来说一个不错的选择是带有 SqlDependency 的输出缓存。我看到对某种用于使缓存失效的 SQL Server 通知的引用,但我只看到有关 SQL Server 2005 的讨论。Microsoft 是否已弃用此选项?有什么新方法来处理这个问题吗?
缓存是一个广泛的术语,可以在许多不同的点发生。最佳解决方案可能是部分或全部的组合。
例如,您可以添加页面或输出缓存,如下所述here http://msdn.microsoft.com/en-us/library/06bh14hk.aspx,它将输出缓存在网络服务器上,我认为这就是您所指的。
此外,您可以使用类似的方法将数据缓存在内存中内存缓存 http://memcached.org,以便 Web 服务器在构建页面时更容易使用您的数据,但您需要查看缓存命中率以确保您正在缓存正确的数据。
此外,虽然稍微偏离了改进数据库密集页面的主题,但您可以使用内容交付网络缓存不经常更改的静态资源,例如图像、CSS 和包含文件。由于规模经济,任何 CDN 几乎肯定会比您自己的连接拥有更高的带宽和更便宜的数据计划,因此一般来说,您可以从那里提供的内容越多越好。
您的第一个问题是“我想知道是否值得“缓存”这些页面的静态版本”。我想这个问题的答案取决于当前是否存在性能问题以及问题的原因在哪里。如果页面的服务快速且可靠,那么很可能不值得实施缓存。如果存在性能问题,那么问题出在哪里呢?是在数据库读取时间中,还是在返回数据后构建页面所花费的时间中?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)