我使用Map
数据结构将我的值存储在hazelcast中。将其存储在hazelcast中后,我的值看起来像这样。
我正在使用这种结构<
String , String><
IMap
<
String, Map<
String, String>
<
<
key value
我的要求:我必须更新FNAME字段值而不检索整个Map并再次覆盖它。
我尝试使用put和replace方法,但它覆盖了整个map值。
答案 0 :(得分:2)
您可以查看使用EntryProcessor,您仍然会反序列化整个地图,但它将在拥有地图键的节点上发生,因此您错过了值映射的网络往返。否则我不得不说,不可能。
您可能希望使用多个IMaps,只在第一个IMAP中存储其他IMAP的引用(名称)。
答案 1 :(得分:2)
Hazelcast并未设计为通用地图实施。它是粗粒度的。它将整个值序列化和反序列化,就像数据库记录一样对待它。无论如何,您应该使用普通的类/ bean而不是String to String映射。然后它会使用更少的内存,特别是如果你实现自己的序列化。它还允许查询,排序,并通常使一切更清洁。在这种情况下,开销很小。
答案 2 :(得分:0)
您可以尝试使用内存格式作为OBJECT和Entry处理器。