如果有人从后端手动更新数据库,如何更新休眠缓存?

Posted

技术标签:

【中文标题】如果有人从后端手动更新数据库,如何更新休眠缓存?【英文标题】:How to update hibernate cache if someone update database manually from backend? 【发布时间】:2021-08-26 03:23:42 【问题描述】:

如果有人手动更新了数据库,我想更新我的休眠缓存。我有很多数据通过,所以我不能一直清除数据或依靠“timeToLiveSeconds”来更新。一旦数据库发生任何变化,我想要一些东西来更新缓存。

【问题讨论】:

【参考方案1】:

没有办法识别相同的。缓存如何知道是否有人从后端修改了值。您必须识别这些值集并定期修改缓存。

【讨论】:

一定有办法。我在网上搜索,发现 debezium 可以帮助解决这个问题,但我也想搜索其他一些方法。我的应用程序中的数据流量非常大,因此我需要某种方式来更新缓存或在数据库已更新时通知缓存。【参考方案2】:

如果您愿意针对 Hibernate 的 SPI 以及可能还针对您的缓存提供程序的 API 进行编码,您可以实现这一点。您只需要访问缓存区域,并使每个查询空间(表)或由主键作为键的单个条目使它们无效。

【讨论】:

以上是关于如果有人从后端手动更新数据库,如何更新休眠缓存?的主要内容,如果未能解决你的问题,请参考以下文章

从后端异步更新/通知 HTML,无需 AJAX 轮询

如何通过外部更新保持你的休眠 1 级缓存一致?

休眠保存或更新行为

Url AS A STRING 从后端发送到前端,自动从 http 更改为 https,有人知道为啥吗?

Spring数据 - 在“手动”后端查询更新后刷新实体

高并发场景下使用缓存需要注意那些问题?