【问题标题】:Entity update using hibernate second level cache使用休眠二级缓存的实体更新
【发布时间】:2014-01-12 13:22:57
【问题描述】:

为了减少数据库负载,我想将热实体移动到休眠二级缓存。

应用程序中的读取和更新频率大致相等,单个实体每秒更新多次。

通过分析休眠日志和二级缓存统计数据,我看到“选择”是从缓存中执行的,“更新”会传播到数据库。

是否可以只更新缓存中的实体并偶尔刷新缓存?如果缓存崩溃,应用程序可以恢复丢失的更新。

【问题讨论】:

  • 如果一个实体经常更新,我怀疑二级缓存会有很多用处,因为需要做一些工作来保持缓存与数据库同步。您可以只禁用此特定实体的二级缓存,并将其留给不经常更新的其他实体。你试过了吗?

标签: java performance hibernate caching second-level-cache


【解决方案1】:

更新:在研究了各种解决方案后得出的结论是,当有许多更新应该只提交到缓存时,休眠二级缓存不是一个合适的选择 .

但仍有一个透明的解决方案。 Hibernate 拦截器和事件监听器允许相对简单的专有缓存处理。我们使用 Hazelcast 作为缓存提供者,支持分布式 Map、事务、锁定、发布/订阅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 2010-11-26
    • 2010-10-20
    • 2011-04-06
    • 2015-04-27
    • 1970-01-01
    • 2019-04-02
    相关资源
    最近更新 更多