2017-02-21 44 views
1

我是hazelcast的新手,並將其用於共享緩存。如何在hazelcast附近的緩存中僅刷新

我們有兩個使用共享緩存的節點。

現在,我們有一個暴露的API會刷新一個節點上的共享緩存,但是,我們需要刷新每個節點上的緩存。

如果我們想刷新共享緩存,我們將獲得緩存,清除並重新填充它。

但是,我不知道如何只刷新附近的緩存。

基本上,我想刷新API所在節點的共享緩存,所以它會刷新附近的緩存以及該節點。並且只需要刷新另一個節點的緩存。

有人可以讓我知道,如果我們只能刷新附近的緩存而不刷新完整的共享緩存,以及如何用示例做到這一點?

在此先感謝您的幫助。

+0

我不確定,但根據Hazelcast的文檔 - (http://docs.hazelcast.org/docs/3.7/manual/html-single/index.html#creating-near-cache-for-地圖),您可以將 x屬性每隔x秒自動清除一次緩存。 –

+0

沒有通過java代碼刷新它,任何由hazelcast提供的api?我無法找到一個, –

+0

是的,您也可以通過編程方式執行相同的操作...使用 - NearCacheConfig nearCacheConfig = new NearCacheConfig()。setTimeToLiveSeconds(60 * 60 * 1000); –

回答

2

您不需要手動管理臨近緩存,只需確保在近緩存配置中將<invalidate-on-change>設置爲true即可。它指定當條目在原始緩存中更新或刪除時是否應該逐出緩存條目。它的默認值是true。

0

在第一次獲取請求之前,NearCache只在其本地緩存中保存該密鑰的值,直到它失效或超時。如果您正在更新鍵值,它會與羣集同步。
您無法單獨刷新NearCache條目,這與Distributed Cache的目的相矛盾。

<!-- 
Should the cached entries get evicted if the entries are changed (updated or removed). 
true of false. Default is true. 
--> 
<invalidate-on-change>true</invalidate-on-change> 

只要上述屬性爲true(這是在默認情況下,如果你還沒有加入它的配置),其他節點上的NearCache作品將得到每當鍵被打在刷新數據隨後的通話。