如何手动或在未来的时间戳上逐出 hazelcast 缓存
Posted
技术标签:
【中文标题】如何手动或在未来的时间戳上逐出 hazelcast 缓存【英文标题】:how to evict hazelcast caches manually or on a future timestamp 【发布时间】:2021-03-18 19:11:38 【问题描述】:我在集群中的 kubernetes 中运行 hazelcast。
我想确保,一旦有人改变了某件事,让我们在 PriceCatalog 中说, hazelcast 必须立即清除(或可配置)所有相关的缓存。
假设产品的价格会在 24 小时内发生变化。
Waiting Time2Live 不是一个选项,可能会有应用旧价格的时间窗口,这将被打破。
有没有办法在给定的时间戳上驱逐缓存? 还是轻松手动逐出所有相关的缓存?
【问题讨论】:
你的问题不清楚。您是说一个缓存中的更改应该触发其他缓存中相关数据的逐出,还是您是说如果数据库中的某些更改应该触发 Hazelcast 缓存中的数据逐出?在您的示例中,PriceCatalog 在哪里 - 在 Hazelcast 的缓存中还是在数据库中? 基本上我想实现最后一句中的第一个问题:“一种在给定时间戳上驱逐缓存的方法”,即不是 time2live 的间隔,而是一个具体的时间,有点像未来的调度开箱即用的任务 【参考方案1】:通过使用 Cache-Ahead,您可以做得比仅仅驱逐实体更好。
我建议你阅读这篇我解释how to set up a cache that's always in sync with the database的帖子。
【讨论】:
以上是关于如何手动或在未来的时间戳上逐出 hazelcast 缓存的主要内容,如果未能解决你的问题,请参考以下文章
使用 SmartFoxServer 实现 Hazelcast