我目前正在使用Hazelcast Community作为web应用程序的缓存机制,因此它需要更快。
目前,我们在那里存储了大量的数据,而且越来越多。因为它是内存中的DB,所以RAM很昂贵.所以想知道最好的做法是什么。我计划只在缓存中存储少量数据,其余数据则存储在MongoDB中。我希望Hazelcast能够持久化,只有在MongoDB找不到数据的情况下才能从它那里获取数据。
我已经创建了映射存储,但我不知道如何让它在MongoDB中“查找”它在缓存中找不到的数据。如果这个结果是空的,那么是getMap("something")
的情况,那么是来自MapStore的load("")
吗?
谢谢
发布于 2017-09-13 11:18:28
在急切模式下,它将加载映射init上的所有条目(因此在hz.getMap()上),在延迟模式下,它将在第一次访问分区时加载该分区。
此外,如果您执行map.get(),并且IMap中没有值,它将尝试使用MapLoader.load(key)方法从MapLoader加载该值。
另外,如果您执行map.put(),并且IMap中没有值,那么它将执行MapLoader.load(key)操作,因为put方法应该返回前一个值。如果您想避免使用map.set()。
如果您看一看与MapStore/MapLoader相关的手册部分,也会更好。它应该描述所有细微的差异。
https://stackoverflow.com/questions/46195567
复制相似问题