日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

一致性哈希 与 普通哈希对比

發布時間:2023/12/29 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 一致性哈希 与 普通哈希对比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

普通哈希算法

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

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

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

cacheA 0

cacheB1

cacheC 2

cacheD 3

cacheE 4

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

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

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

一致性哈希算法

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

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

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

cacheA key1

cacheBkey2

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上。

總結

以上是生活随笔為你收集整理的一致性哈希 与 普通哈希对比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。