2012-04-23 61 views
0

假设您有一个将数据保存在数据库中的分层应用程序。为了加快访问速度,您希望将数据(或其关键部分)保存在内存中。在哪一层将数据保存在内存中?

在哪一层(数据库层或逻辑层)最好将数据保存在内存中? 在使用业务逻辑处理之前还是之后?

如果在应用业务逻辑之前将其保存在内存中,那么需要对数据库进行很少的调用,但是会失去很多灵活性(因为您无法将工作委托给较低级别​​)。

有没有关于这个东西的一些模式或最佳实践?

回答

1

这取决于您的架构,以及您自己指出的用例。从一般观点来看,高速缓存可以在两个逻辑或数据层中的任何一个中实现,甚至在两个甚至两个服务层中实现。例如。在Restful体系结构中,我们可以假设GET调用只是幂等读取,并且不会更改数据,因此它们也可以被缓存。

因此得出结论,缓存策略必须是您的实际需求的后续影响。在您的开发过程中,您应该可以轻松地在任何层获取,以便在需要时快速部署(Restful原则有很大帮助)。从小处开始,然后添加。 )从Twitter

实施例:http://www.infoq.com/news/2009/06/Twitter-Architecture

2

关键字是数据

在数据访问层中使用缓存策略后,您可以将整个业务层代码专用于解决业务问题。

+0

我曾经说过,替代方法是在应用业务逻辑之前缓存数据。这不会以任何方式影响业务逻辑。 – m3th0dman 2012-05-02 08:20:42