Java缓存作为数据库?

时间:2014-11-22 19:56:21

标签: java caching ehcache jcs

java缓存库如何用作数据库?

我使用的是EhcacheJCS而不是数据库?

Ehcache是否支持仅针对Enterprise Ehcache的持久性策略= localRestartable,即付费版本?

这是否意味着免费版本不适合数据库替换?

更新

为什么不持久缓存数据库替换?数据库引擎操作和使用dist存储的缓存操作之间的主要区别是什么?

以下是neo4j(图形数据库)和Ehcache(缓存)之间的比较示例:http://vschart.com/compare/ehcache/vs/neo4j-community它们看起来具有可比性。

1 个答案:

答案 0 :(得分:2)

缓存是一种应用程序组件,用于交换增加的内存使用量,以降低数据访问的延迟。它通常有一个驱逐的概念,加上假设它保存可以从其他地方查询或重建的数据。

这两个概念相结合,允许缓存实现者在他们认为合适的任何时候从缓存中删除一个条目,用于限制缓存资源利用率,支持具有更频繁访问模式的条目或者只是不将缓存作为源延迟增加

这是不应将缓存用作数据存储区的主要原因。

现在,一些缓存实现可能会提供防止驱逐的功能,但在这种情况下,您最终会支付驱逐逻辑/复杂性的代价,而这种代价在数据存储区中不会出现。

关于Ehcache持久性,传统模式overflowToDisk=truediskPersistent=true提供有限的"在JVM重启后仍然存在"持久性。然而,它对正确关闭非常敏感,并且在检测到启动时的任何损坏时,缓存将丢弃所有内容并重新启动为空。请参阅上文,了解为什么这是缓存上下文中的有效选项。