2014-06-05 155 views
1

我是Hazelcast的新手,希望對您有所幫助。在Hazelcast中存儲json vs Object vs Map。

使用案例:我有一個數據庫table CUSTOMER (id, firstname, lastname,age),並希望將其存儲在分佈式映射中。將需要查詢(可能是謂詞)集合和一般的get/put操作。將會有大約一百萬條記錄,我有兩個節點可供我處理。

什麼是最好的方法是記住性能和記憶。

1.將記錄存儲爲地圖映射; IMap>;其中在內部映射中的鍵是列名

或者

2.Store記錄爲JSON; IMap<String,String> Ex: [ "123" : { "id" : "123", "firstname" : "john", "lastname" : "Deer", "age" : "25" }]

或者

3.創建一個客戶DTO並將其存儲在IMAP

感謝

+0

請儘量防止在多個位置的相同問題的重複發佈,這使答案很難回答,因爲答案分散了! – noctarius

回答

1

使用實體類的最後一個選項是首選,但是如果你期望的目標往往要改變JSON可能更適合無​​模式(因爲你正在談論一個數據庫表,我猜你不需要這樣做)。

順便說一下你的第一個選項不工作,因爲IMap本身不是可序列化的。你可以做IMap>但這種方法的問題是,內部地圖需要完全反序列化每個得到這將殺死你的性能;-)

+0

感謝您的回覆。如果我使用第一種方法IMap >或者最後一種方法IMap ,則對每個get操作執行反序列化。 我可以使用IMap 的好處是我可以靈活地提供我的版本的序列化/外部化,這種理解是正確的嗎? – user3709571

+0

是的,這是正確的。您可以使用java.io.Serializable,java.io.Externalizable,com.hazelcast.core.DataSerializable或最大速度/ bytesize com.hazelcast.core.IdentifiedDataSerializable :) – noctarius