为了减少数据库负载,我希望将热实体移动到hibernate二级缓存。
应用程序中读取和更新的频率大致相等,单个实体每秒更新多次。
通过分析hibernate日志和二级缓存统计信息,我发现“select”从缓存中执行,“更新”被传播到数据库中。
是否有可能只更新缓存中的实体并偶尔刷新缓存?如果缓存崩溃,应用程序可以恢复丢失的更新。
发布于 2014-01-13 15:09:12
更新:通过对各种解决方案的研究,得出了hibernate二级缓存不是一个合适的选择的结论,当有许多只需要提交给缓存的更新时,不是一个合适的选择。
但仍然有一个透明的解决办法。Hibernate拦截器和事件侦听器允许相对简单的专有缓存处理。我们使用Hazelcast作为缓存提供程序,它支持分布式地图、事务、锁定、pub/sub。
https://stackoverflow.com/questions/20758543
复制相似问题