分布式缓存机制如何工作?

时间:2014-06-12 13:37:41

标签: caching hazelcast

我想知道如果每个jvm实例都有自己的内存区域,那么hazelcast或ehcache变体如何实现交叉jvm缓存。如何在网格内存模型中共享映射对象?

1 个答案:

答案 0 :(得分:1)

这实际上取决于缓存实现。

如果我们查看Hazelcast中的常规地图,则会对数据进行分区。默认情况下在271个分区中。因此,假设您有271.000个键/值,那么每个分区将获得1000个键/值。

每个分区都分配给一台机器。所以,如果我们需要做,例如map.get(“foo”),它可能映射到分区25(我们确定密钥的哈希值,并根据我们在分区表中查找哪个成员拥有分区25)。然后我们向该机器发送一个请求,该请求返回键“foo”的值。

这大致是Hazelcast中常规分区地图(IMap)的工作原理。