繁体   English   中英

ASP.NET网页-半动态内容缓存

[英]ASP.NET Web Pages - Semi-dynamic content caching

我正在使用Razor 3并以.NET Framework 4.5为目标的ASP.NET Web Pages项目。 目前,我不知道它是否将部署在IIS7(Windows Server 2008 R2)或IIS8(Windows Server 2012)上。

我有一些.vbhtml内容页面,这些页面是从定制CMS管理的数据库中填充的。 这些页面的内容很少更改(它们是主页,关于我们,它是如何工作的,是FAQ类型的页面),我想确保有效地缓存内容以防止不必要的数据库调用。 我认为这是半动态的内容。

缓存页面以使其仅在内容更改后才从数据库获取的最佳方法是什么? 可以在IIS中设置它还是应该在代码中完成?

谢谢。

首先,我不是缓存专家,下面仅代表我对您的问题的看法和想法。

首先,根本不使用缓存的情况。 通过使用缓存,我们基本上将CPU和I / O时间用于内存占用。 如果前者很珍贵,而您又有备用,那无疑是一个胜利。 当然,除了内存使用之外,它还需要另外付出代价:代码复杂性。 缓存系统当然不必太复杂,但是我一直认为,您可以编写的最佳代码通常是您可以编写的最简单的代码。 我个人对此的看法是,甚至在考虑实施动态资源的缓存之前,应该每分钟请求一次以上的资源(或者该页面应该计算出非常昂贵的CPU或I / O方式)。 如果不经常执行代码,我会说一个简单的CMS数据库经常命中某些内容,这根本不值得在代码库中添加额外的故障点。

也就是说,继续假设您仍要在网站上实现某种形式的基本缓存系统,Web Pages提供了一些简单但功能强大的内置工具。 这是一个很好的教程:

http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

我询问CMS是否使用同一项目的原因是,当您可以轻松地使编辑器在编辑特定内容时直接使缓存直接无效/重新加载缓存时,它有时很方便。 您可以在立即显示编辑内容的同时使数据更持久。 一个简单的前端页面系统可以在缓存为空时从数据库中加载内容(并在缓存为空时将其存储在缓存中),以及使它无效和/或重新加载的编辑器,这对我来说是理想的选择决定继续实施缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM