java - 使用hibernate二级缓存进行实体更新

标签 java performance hibernate caching second-level-cache

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

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

通过分析 hibernate 日志和二级缓存统计信息,我发现“选择”是从缓存中执行的,而“更新”则传播到数据库。

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

最佳答案

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

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

关于java - 使用hibernate二级缓存进行实体更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20758543/

相关文章:

java - 密码检查错误

java - 在 JPA/Hibernate 中建模二对多关系

java - 使用 hibernate 和 fetch=FetchType.LAZY 从表中获取数据

python - 改进蒙特卡罗模拟中的Python代码

hibernate - 使用 transient 字段在 grails 中查询和排序数据库结果

java - 我在切换菜单中的项目时遇到问题

java - 是否有与Java的replaceAll ("\\p{Cntrl}"、 "")等效的Objective-C(NSString)?

Java套接字错误: java.net.ConnectException:连接被拒绝:连接

c++ - 用于查找图像堆栈中每个像素的平均值的快速数据结构或算法

django - 如何评估Web服务器的性能?