我应该在哪一层实现缓存



我的网站正在上线。但是,有许多客户端调用服务器以获取将连接到数据库进行检索的数据。为了提高数据库的性能,我需要在 Web 服务器中实现缓存。

我应该在数据访问或模型层实现它。我正在使用 ASP.NET MVC。谢谢。

Web 应用程序中可能有 2 个级别的缓存:

  1. 缓存整个操作或 HTML 片段
  2. 缓存数据访问操作的结果对象

第一种方案是通过使用 [OutputCache] 属性修饰操作/子操作来实现的。

第二个是更细粒度的,这将取决于您的设置。例如,如果您使用的是 NHibernate 等 ORM,则您的 ORM 可能已经支持缓存。例如,NHibernate支持二级缓存,甚至可以使用缓存提供程序进行外部化。因此,如果您使用的是ORM,请转到ORM的文档,以查看它是否支持此类缓存功能。

如果您的ORM

不支持缓存,或者您根本没有使用ORM,那么您可以自己构建缓存。这可以在您的服务层实现,您可以在其中注入一些缓存提供程序作为依赖项,当您的服务查询您的存储库时,使用提供程序缓存这些存储库返回的结果。

最新更新