TPR*_*TPR 5 asp.net-mvc caching
我正在寻找使用ASP.NET MVC的缓存,我也正在完成Web主机的最终阶段.我有两个问题......
1)在共享主机环境上完成缓存是否会产生问题,因为资源是共享的?这个问题可能听起来很傻,但我不知道缓存是如何在幕后工作的.
2)在实现缓存之前,我想问一下这种方法是否有意义.我将尽可能地缓存,并在需要时使其无效.但是,缓存如何处理非常频繁更新的项目列表,比如说在一分钟之内.例如,StackOverflow的首页,每分钟都会添加很多问题,首页实际上是否可以缓存?
编辑:3)我还想讨论缓存如何与分页和所有.
我认为如果你每秒处理 200 个请求,那么一分钟就是很长的时间,而且我认为 SO 使用 asp.net 输出缓存作为首页。他们也很可能使用某种甜甜圈缓存来缓存非用户特定的部分。
Asp.net MVC 使用标准 ASP.NET 缓存提供程序不变。在共享主机上,缓存应该正常工作,但请注意,如果主机选择在计算机级别上锁定缓存设置,则它们可以锁定缓存设置。缓存提供程序负责内存管理,如果内存使用率过高,则会从缓存中删除项目。我建议您在此处阅读有关缓存的 MSDN 页面。
复杂性来自于集群环境,而不是共享主机。在集群环境中,缓存不会分发到所有计算机,因此每台计算机都有一个单独的缓存副本。如果这带来了问题,那么您将需要研究分布式缓存解决方案,但在大多数简单的情况下,这没问题。
关于分页,asp.net 的输出缓存功能允许您根据查询字符串进行变化,因此,如果您有 www.url.com?page=1,则该字符串将与 www.url.com?page 单独存储在缓存中=2。