一致性哈希 與 普通哈希對比

一致性哈希 與 普通哈希對比

標(biāo)簽:區(qū)別哈希

原創(chuàng)作品,允許轉(zhuǎn)載,轉(zhuǎn)載時請務(wù)必以超鏈接形式標(biāo)明文章原始出處、作者信息和本聲明。否則將追究法律責(zé)任。http://xinsir.blog.51cto.com/5038915/1532872

正文 begin

普通哈希算法

假如有cache主機(jī)5臺分別為cacheA、cacheB、cacheC、cacheD、cacheE

當(dāng)程序進(jìn)行hash時,首先每個節(jié)點要根據(jù)自己的唯一參數(shù)哈希出一個值來(如根據(jù)ip進(jìn)行哈希)

主機(jī)哈希完成后形成的哈希值如下

cacheA?????? 0

cacheB???????1

cacheC?????? 2

cacheD?????? 3

cacheE?????? 4

主機(jī)形成哈希值后,我們以緩存來做實例,比如某個用戶登錄后會有一個唯一的pin值,然后根據(jù)

這個pin值進(jìn)行hash求余。因為求余是用5來求余,所以數(shù)值肯定會小宇5 因此就有了落點,然后把

緩存數(shù)據(jù)進(jìn)行緩存到落點服務(wù)器中

一致性哈希算法

假如有cache主機(jī)5臺分別為cacheA、cacheB、cacheC、cacheD、cacheE

當(dāng)程序進(jìn)行hash時,首先每個節(jié)點要根據(jù)自己的唯一參數(shù)哈希出一個值來(如根據(jù)ip進(jìn)行哈希)

主機(jī)哈希完成后形成的哈希值如下

cacheA?????? key1

cacheB???????key2

cacheC?????? key3

cacheD?????? key4

cacheE?????? key5

然后5臺節(jié)點圍繞稱一個環(huán)形,如圖


主機(jī)形成哈希值后,我們以緩存來做實例,比如某個用戶登錄后會有一個唯一的pin值,然后根據(jù)

這個pin值進(jìn)行hash。這里注意和普通hash不一樣的就是這里只hash不求余,當(dāng)hash出一個數(shù)值

后,查看這個這個值介于那兩個值之間比如介于key4和key5之間,然后從這個落點開始順時針查

找遇到第一個cache服務(wù)器后就把這個服務(wù)器當(dāng)作此次緩存的落點,從而把這個緩存放到這個落點

上。如圖:


兩者比較:

經(jīng)過上面的介紹我們能看出,假如普通的哈希當(dāng)其中任意一臺機(jī)器down掉后,我們整個的

緩存都將安然無存,為什么這么說呢?

因為當(dāng)某臺cache down掉后我們需要重選算落點,除數(shù)已經(jīng)變了,所以都要重新set緩存,

當(dāng)然不排除有一些兩個pin值算的落點是一樣的,但是當(dāng)cache服務(wù)器增加到一定數(shù)量后,前面所

說的可能性幾乎為0,所以稱之為全部緩存都要重新set。

而使用一致性哈希當(dāng)其中一臺機(jī)器down掉后,只有它上面到它這一段的環(huán)路緩存失效了,如:

當(dāng)cache3 down掉后,那落掉在cache2到cache3之間的pin都將失效,那么失效的落點講繼續(xù)順時

針查找cache服務(wù)器,那么新的落點都將落到cache4上。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Memcached是一個分布式的高性能內(nèi)存對象緩存系統(tǒng),可以緩存數(shù)據(jù),如果沒有它,就必須從數(shù)據(jù)庫中獲取數(shù)據(jù),加重數(shù)...
    狼之足跡閱讀 2,721評論 0 1
  • 上一篇《WEB請求處理一:瀏覽器請求發(fā)起處理》,我們講述了瀏覽器端請求發(fā)起過程,通過DNS域名解析服務(wù)器IP,并建...
    七寸知架構(gòu)閱讀 81,810評論 21 356
  • 場景 最近要在應(yīng)用中做一層內(nèi)存緩存來加快系統(tǒng)的響應(yīng)。但是由于數(shù)據(jù)量較大,單臺Server無法Load全量數(shù)據(jù),所以...
    mmlmml閱讀 692評論 0 4
  • 隔著言不由衷的遙遠(yuǎn),帶著口是心非的遺憾。 01 男人總是抱怨地說女人是很神奇的生物,因為她們從不說出自己最真實的想...
    沐森讀書閱讀 1,067評論 0 0
  • 文/阿洛 已經(jīng)很晚了,坐在桌旁,望著手機(jī)上QQ的“聯(lián)系人”發(fā)著呆。忽然,看到了你。 我們分別已經(jīng)有三個多月了,最...
    無刺之猬Lola閱讀 224評論 0 1

友情鏈接更多精彩內(nèi)容