繁体   English   中英

2级休眠缓存了解

[英]2nd level hibernate cache understanding

** 1。**对于二级缓存,只能设置超时期限,而不能强制刷新/清除实体的缓存吗? 或添加注释@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)如每次执行saveorupdate / mergeupdate时自动刷新/清除缓存? hibernateTemplate.flush()与这个有什么关系?


2.为所有实体启用二级缓存是否很好? 如果在我缓存所有实体时我不想过长的缓存时间,那么您在这种情况下使用ehcache的平均超时时间是多少?

1)如果需要,您可以从第二级缓存中手动逐出实体。 SessionFactory为此有几种方法。 某个实体(或集合)的某些逐出实例; 其他则驱逐给定类的所有实体(或给定实体名称/角色名称)。

就是说,您通常不必这样做-Hibernate会为您保持缓存的更新(除非您要进行一些相当具体的工作,例如SQL更新-在这种情况下确实可以澄清您的问题)。

2)通常-不,缓存所有实体不是很好。 缓存不可变实体以及经常加载/很少更新的实体通常是一个好主意。 假设你没有很多。 但是,这实际上取决于您在做什么。

超时是一个拐杖(或者是一种保护措施),旨在使高速缓存大小/状态保持合理,即使您不这样做也是如此。 好的缓存策略不应该依赖它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM