-1

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

我使用类似EhcacheJCS代替数据库的东西?

是否Ehcache只支持 Enterprise Ehcache 的持久化策略 = localRestartable,即付费版本?

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

更新

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

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

4

1 回答 1

2

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

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

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

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

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

于 2014-11-24T10:57:55.417 回答