Java 使用hibernate二级缓存更新实体
为了减少数据库负载,我想将热实体移动到hibernate二级缓存 应用程序中的读取和更新频率大致相等,单个实体每秒更新多次 通过分析hibernate日志和二级缓存统计信息,我看到“选择”是从缓存执行的,“更新”是传播到数据库的Java 使用hibernate二级缓存更新实体,java,performance,hibernate,caching,second-level-cache,Java,Performance,Hibernate,Caching,Second Level Cache,为了减少数据库负载,我想将热实体移动到hibernate二级缓存 应用程序中的读取和更新频率大致相等,单个实体每秒更新多次 通过分析hibernate日志和二级缓存统计信息,我看到“选择”是从缓存执行的,“更新”是传播到数据库的 是否可以只更新缓存中的实体并偶尔刷新缓存?如果缓存崩溃,应用程序可以恢复丢失的更新。更新:在研究了各种解决方案后,得出的结论是,当有许多更新只应提交到缓存时,休眠二级缓存不是一个合适的选择 但仍然有一个透明的解决方案。Hibernate拦截器和事件侦听器允许相对简单的专
是否可以只更新缓存中的实体并偶尔刷新缓存?如果缓存崩溃,应用程序可以恢复丢失的更新。更新:在研究了各种解决方案后,得出的结论是,当有许多更新只应提交到缓存时,休眠二级缓存不是一个合适的选择
但仍然有一个透明的解决方案。Hibernate拦截器和事件侦听器允许相对简单的专有缓存处理。我们使用Hazelcast作为缓存提供程序,支持分布式映射、事务、锁定、发布/订阅。如果一个实体经常更新,我怀疑二级缓存是否有用,因为需要做一些工作来保持缓存与数据库同步。您只需禁用此特定实体的二级缓存,并将其留给不经常更新的其他实体即可。你试过了吗?