2016-11-23 129 views
1

我想了解HazelCast Cache使用情況HazelCast緩存

我有哪裏需要將源數據的主機之間共享的分佈式環境。我正在使用HazelCast ListMap來分發數據。 源數據不斷變化。我可以通過HazelCast List/Map獲得所有主機的最新數據。如何在HazelCast列表/地圖上使用HazelCast緩存。

+0

我很抱歉,但我不認爲我理解了這個問題的任何內容。你可以在問題中加入幾個Javadoc鏈接,比如Hazelcast Cache是​​什麼意思?的JCache? NearCache? IMAP? – noctarius

+0

仍不確定你想要做什麼。將IList和IMap存儲在JCache中? – noctarius

+0

也許吧。是否有可能獲得兩者中最好的?對JCache來說,IList和IMap的結果如何?所以1)我得到最新的數據2)使用緩存?或者它必須是其中一個,但不是兩個? – johnsam

回答

6

Hazelcast JCache是​​一個獨立的數據結構,像IMap和IList。他們之間沒有任何聯繫。

如果您想要減少網絡流量,則IMap有自己的(本地)緩存,稱爲Near Cache。請查看IMap的Near Cache文檔,看看它是否符合您的要求。

我認爲IList沒有這樣的機制。

+1

感謝您的信息。靠近緩存文件說:「臨近緩存打破了強大的一致性保證;您可能正在讀取陳舊的數據。」儘管我的訪問權限的90%被讀取。由於這個警告,我擔心我會得到過時的數據,我仍然無法使用Near Cache。真的嗎?此外,它默認說「每個map.get(k)將是一個遠程操作」,這是否也是真的hazelcastinstance.getList(k)操作? – johnsam

+0

事實上,我的用例是有一個寫主機,所有休息主機都會讀。由於數據有時會發生變化,我仍然擔心「NearCache」會導致讀者獲得過時的數據。我的擔憂是否有效? – johnsam

+1

抱歉,超級遲到的回覆。 NearCache中的數據可能過時了一段時間。這是有一個緩存的權衡。在Hazelcast 3.8中,我們改進了Near Cache的「一致性」保證。所以有一個修復機制,最終可以修復丟失分區等罕見邊緣情況下的任何陳舊數據。 此外,您可以在近緩存數據上使用TTL,因此您可以定義緩存數據的最大「過時窗口」。 – Donnerbart