为了减少数据库负载,我想将热实体移动到 hibernate 二级缓存。
应用程序中的读取和更新频率大致相等,并且单个实体每秒更新多次。
通过分析 hibernate 日志和二级缓存统计信息,我发现“选择”是从缓存中执行的,而“更新”则传播到数据库。
是否可以仅更新缓存中的实体并偶尔刷新缓存?如果缓存崩溃,应用程序可以恢复丢失的更新。
最佳答案
更新:在研究了各种解决方案之后,得出的结论是,当有许多更新应该仅提交到缓存时,hibernate二级缓存不是一个合适的选择 .
但是仍然有一个透明的解决方案。 Hibernate 拦截器和事件监听器允许相对简单的专有缓存处理。我们使用 Hazelcast 作为缓存提供程序,支持分布式 Map、事务、锁定、发布/订阅。
关于java - 使用hibernate二级缓存进行实体更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20758543/