單調性是指如果已經有一些內容通過雜湊分派到了相應的緩衝中,又有新的緩衝區加入到系統中,那麼雜湊的結果應能夠保證原有已分配的內容可以被對映到新的緩衝區中去,而不會被對映到舊的緩衝集合中的其他緩衝區。有點繞,簡單來說就是,如果新增乙個新節點,原有的key對應的快取,要麼不遷移,要麼遷移到新的節點,而不會遷移到其他舊節點。
public
class lzhash
}private
void
addnode(string node)
realnodes.add(node);
}private
void
removenode(string node)
realnodes.remove(node);
}public
static string md5(string source)
public
static string getredisnode(string key)
sortedmaptemp = virtualnodes.tailmap(hash);
if(temp.isempty())
return temp.get(temp.firstkey());
}public
static
void
main(string args) if(node.equals("192.168.99.233:6379")) if(node.equals("192.168.99.60:6379"))
}system.out.println("node220:" + node220);
system.out.println("node233:" + node233);
system.out.println("node60:" + node60);
}}
Redis 一致性Hash演算法
在redis 集群模式cluster中,redis採用的是分片sharding的方式,也就是將資料採用一定的分割槽策略,分發到相應的集群節點中。但是我們使用上述hash演算法進行快取時,會出現一些缺陷,主要體現在伺服器數量變動的時候,所有快取的位置都要發生改變!具體來講就是說第一當快取伺服器數量發生...
一致性hash演算法 面試必備 一致性hash演算法
最近公司在招人,我們準備的問題中有一道是關於一致性hash演算法的問題,只有一些面試者能夠回答上來,而且答的也不是很全面,有的面試者只是聽說過,有的連聽都沒聽過,下面我把一致性hash演算法整理一下分享給大家 一致性雜湊演算法在1997年由麻省理工學院的karger等人在解決分布式cache中提出的...
一致性hash演算法虛擬節點 一致性hash演算法
hash 演算法也叫做雜湊演算法,他可以讓任意長度的資料m對映成為長度固定的值h。hash演算法的第乙個作用就是資料的快速儲存與查詢。寫過程式的人都知道,基本上主流的程式語言裡面都有個資料結構叫做map dictionary或者 hash table 它是根據key來直接訪問結果的資料結構。key的...