如何刷新二级缓存?

时间:2011-08-29 21:19:30

标签: java hibernate ehcache second-level-cache

如何强制重新读取数据库数据(在读取之前不驱逐二级缓存),然后将其放入缓存。

用例如下:

有一项使用字典数据的服务。服务承受高负荷,因此性能是必须的。 我希望字典数据始终在服务的二级缓存中可用。 字典数据可以在外部修改,因此需要定期刷新缓存。

是否有可能'刷新'二级缓存,使SessionFactory的其他客户端不会导致db命中(在读取更新数据时会获取旧项目)。

ehcache用作缓存提供程序,但可以合理地更改。

1 个答案:

答案 0 :(得分:4)

要经常读取数据库,您可以将会话中的CacheMode设置为REFRESH - 将从该客户端的数据库中获取数据,并且任何更新添加到二级缓存。使用普通缓存模式查询的其他客户端将从二级缓存中读取而不会访问数据库。

请参阅CacheMode