如何手动或在未来的时间戳上逐出 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 缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何在时间戳上正确使用分组?

如何在时间戳上使用“NOW()”更新 Sequelize?

redis 突然大量逐出导致读写请求block

使用 SmartFoxServer 实现 Hazelcast

如何配对在同一图像的多个 docker 容器中运行的嵌入式 Hazelcast

特斯拉前AI高级总监宣布重回OpenAI,马斯克曾为挖他被逐出董事会