2

我使用 (String, Arraylist of String) 作为 gemfire 缓存中的键值对。是否有任何方法可以从值列表中添加或删除特定值而不获取整个列表并添加/删除并再次发布列表? !

4

2 回答 2

3

您可以创建包装器对象以保留列表。这个包装对象可以实现delta 接口。使用它,您可以从列表中添加/删除字段。看看这是否有帮助。

于 2015-04-10T04:57:43.290 回答
0

GemFire 在存储时对值进行序列化,并有各种复杂的配置来控制序列化的类型和级别。

因此,当您更新值中的值时,发生的情况是序列化的值正在流式传输到客户端,然后您正在更改它,然后重新序列化更改的值并将其流式传输到服务器,然后存储它。

如果您只想在服务器端本身更新 ArrayList 中的值,那么您必须创建一个服务器端侦听器并将该类添加到服务器的类路径中,以便您可以更精细地管理序列化/反序列化。

或者,您可能需要更改您的数据模型,使 ArrayList 值更像是一个 Map,并被展平为与主要区域位于同一位置的次要区域等。

于 2015-05-26T20:18:48.400 回答