0

我正在开发一个库存应用程序,该应用程序将通过使用来自大约 20 个用户的 java ee 6 在 Intranet 中使用。在这种情况下我真的需要二级缓存吗?

4

2 回答 2

0

没有足够的信息来回答这个问题。但是任何时候你都可以提高性能。您的应用程序可能会增长,您将需要缓存。此外,缓存的使用在很大程度上取决于实现空间与时间的权衡。更多空间 = 更少时间,反之亦然。考虑以下场景:

如果不缓存系统上的每个查询,则需要 1 秒。使用缓存每个查询需要 0.5 秒,但构建/刷新缓存的时间是 20 分钟

在某些时候,缓存是无用的。数学要遵循。假设必须每小时重建缓存以提高性能,则每小时查询数必须超过每秒 80 次查询才能达到收支平衡。

20 minutes for the cache (60*20)  
.5 seconds per query (2 per second)    
于 2012-12-26T20:49:43.463 回答
0

使用二级缓存来加速某些 JPA 操作可以为您的应用程序带来有趣的性能提升,并且在我所知道的情况下,它几乎是零努力的配置项。但是,它会引入一些非常烦人的副作用:

  • 如果您的应用程序作为多个可部署项(ear's、war's)加载,通常这些部署的应用程序中的每一个都将具有自己的二级缓存。结果是在一个应用程序中完成的更新不会立即反映在其他应用程序中,它们将继续使用其缓存但现在已过时的数据副本。
  • 如果您的应用程序不是完全使用 JPA 构建的,同样的问题也会发生。

这就是为什么对经常修改的数据不应该使用二级缓存的原因。

于 2012-12-26T21:13:11.977 回答