java缓存库如何用作数据库?
我使用的是Ehcache
或JCS
而不是数据库?
Ehcache
是否支持仅针对Enterprise Ehcache的持久性策略= localRestartable,即付费版本?
这是否意味着免费版本不适合数据库替换?
更新
为什么不持久缓存数据库替换?数据库引擎操作和使用dist存储的缓存操作之间的主要区别是什么?
以下是neo4j(图形数据库)和Ehcache(缓存)之间的比较示例:http://vschart.com/compare/ehcache/vs/neo4j-community它们看起来具有可比性。
答案 0 :(得分:2)
缓存是一种应用程序组件,用于交换增加的内存使用量,以降低数据访问的延迟。它通常有一个驱逐的概念,加上假设它保存可以从其他地方查询或重建的数据。
这两个概念相结合,允许缓存实现者在他们认为合适的任何时候从缓存中删除一个条目,用于限制缓存资源利用率,支持具有更频繁访问模式的条目或者只是不将缓存作为源延迟增加
这是不应将缓存用作数据存储区的主要原因。
现在,一些缓存实现可能会提供防止驱逐的功能,但在这种情况下,您最终会支付驱逐逻辑/复杂性的代价,而这种代价在数据存储区中不会出现。
关于Ehcache持久性,传统模式overflowToDisk=true
和diskPersistent=true
提供有限的"在JVM重启后仍然存在"持久性。然而,它对正确关闭非常敏感,并且在检测到启动时的任何损坏时,缓存将丢弃所有内容并重新启动为空。请参阅上文,了解为什么这是缓存上下文中的有效选项。