有时候受机器的限制,一台机器并不能在内存中存下所有的东西。 但是又不想放入DB中减小检索速度。
这经常会出现一份内存多机存放的情况。
其实这种情况很好处理,首先将index做一次hash取值然后对机器数取模。
PARTITIONS != CURRENT_PARTITION可以写入以IP为KEY的配置文件中或者DB中,
private static RabinHashFunction64 rhf64 = RabinHashFunction64.DEFAULT_HASH_FUNCTION;
long indexHashCode = rhf64.hash(index);
if (indexHashCode % PARTITIONS != CURRENT_PARTITION) {
return false;
}
cache.put(index, object);