国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

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

2019-11-06 06:15:43
字體:
來源:轉載
供稿:網友

普通哈希算法

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

    當程序進行hash時,首先每個節點要根據自己的唯一參數哈希出一個值來(如根據ip進行哈希)

    主機哈希完成后形成的哈希值如下

    cacheA       0

    cacheB       1

    cacheC       2

    cacheD       3

    cacheE       4

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

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

    緩存數據進行緩存到落點服務器中

一致性哈希算法

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

    當程序進行hash時,首先每個節點要根據自己的唯一參數哈希出一個值來(如根據ip進行哈希)

    主機哈希完成后形成的哈希值如下

    cacheA       key1

    cacheB       key2

    cacheC       key3

    cacheD       key4

    cacheE       key5

然后5臺節點圍繞稱一個環形,如圖:

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

 這個pin值進行hash。這里注意和普通hash不一樣的就是這里只hash不求余,當hash出一個數值

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

找遇到第一個cache服務器后就把這個服務器當作此次緩存的落點,從而把這個緩存放到這個落點

上。如圖:

兩者比較:

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

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

        因為當某臺cache down掉后我們需要重選算落點,除數已經變了,所以都要重新set緩存,

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

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

       而使用一致性哈希當其中一臺機器down掉后,只有它上面到它這一段的環路緩存失效了,如:

當cache3 down掉后,那落掉在cache2到cache3之間的pin都將失效,那么失效的落點講繼續順時

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

注:對一致性哈希的理解

            一致性hash算法 - consistent hashing


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平塘县| 邻水| 堆龙德庆县| 秀山| 栾城县| 普宁市| 吉安市| 荣成市| 丹寨县| 阳城县| 扬中市| 福贡县| 红桥区| 巴青县| 衡水市| 三穗县| 镇平县| 灵石县| 承德市| 改则县| 海淀区| 南阳市| 隆回县| 边坝县| 威信县| 蚌埠市| 扬中市| 新安县| 武安市| 赞皇县| 通榆县| 明溪县| 江源县| 读书| 海晏县| 察哈| 房山区| 长垣县| 陕西省| 黑龙江省| 汉寿县|