据我了解,hazelcast 中没有开箱即用的支持。以下是我能想到的几种解决方法:
- 将额外信息(映射名称、如何存储数据等)封装在上下文对象中,并将其存储在针对您的键的不同 java 映射中。稍后在您的 MapStore 实现中使用此映射来检索相应的信息,这将帮助您持久化您的键值对。
你把操作可能看起来像。
hzMap.put(key, value);
Context context = new Context();
context.setHowToStoreData();
context.setMapName();
// any othe rother information
context.xxx();
// create a unique context key which can be later deduced from (key,value) pair.
contextKey = getUniqueContextKey(key, value);
contextMap.put(contextKey, context);
在您的 MapStore 实现中,您可以使用此 contextMap 来检索其他值。
- 第二种方法是将信息封装在(键,值)对中。您可以创建一个名为 CacheEntry 的新类来存储缓存值以及其他信息。然后,您可以稍后从 iMap 本身检索您的缓存值以及其他信息。
你把操作可能看起来像。
CacheEntry<YourValueClass> cacheEntry = new CacheEntry<YourValueClass>();
cacheEntry.setValue(value);
cacheEntry.howToStoreData(..);
cacheEntry.setMapName(..);
imap.put(key, cacheEntry);
在您的 MapStore 实现中,您可以使用该值(将是一个 CacheEntry 对象)本身来检索附加信息以及实际value
(的实例YourValueClass
)。