2012-07-04 56 views
0

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

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

+0

你的数据访问层是如何实现的?它是一个ORM还是手工编码的? –

+0

你在缓存什么?它多久请求一次?它有多少种变化?它有多大?多少个并发用户?你能忍受“陈旧”数据多久?为什么要缓存你的数据访问层? –

+0

仅缓存实时数据。 –

回答

2

有可能是在web应用中2级缓存:

  1. 缓存从数据访问操作
  2. 缓存结果对象

第一种情形是实现HTML的整个行动或片段通过使用[OutputCache]属性装饰动作/子动作。

第二个是更细粒度,它将取决于您的设置。例如,如果您使用的是ORM(如NHibernate),也许您的ORM已经支持缓存。例如NHibernate支持二级缓存,甚至可以使用缓存提供程序进行外部化。因此,如果您正在使用ORM头读取ORM的文档,以查看它是否支持这种缓存功能。

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

相关问题