今天我們聊個知識點為什么redis使用哈希槽而不是一致性哈希。
先看文章大綱,提前了解本期內(nèi)容
圖片
往期回顧
之前小許用圖文并茂的方式用一期內(nèi)容讓大家快速了解了一致性哈希算法,看過的朋友應(yīng)該還有印象,沒看過的朋友可以點擊這里看一遍《五分鐘了解一致性哈希算法》。
看明白這篇一致性哈希算法基礎(chǔ),會對本期內(nèi)容有更好的認(rèn)識和對比性。
這里我們再簡單回顧下:
一致性哈希算法就很好地解決了分布式系統(tǒng)在擴(kuò)容或者縮容時,發(fā)生過多的數(shù)據(jù)遷移的問題。
算法是對 2^32 進(jìn)行取模運算的結(jié)果值虛擬成一個圓環(huán),環(huán)上的刻度對應(yīng)一個 0~2^32 - 1 之間的數(shù)值。
通過虛擬節(jié)點的方式很好的處理了數(shù)據(jù)不平衡問題。
圖片
不同的計算方式
不知道朋友們記不記得Redis Cluster的實現(xiàn),也是用了Hash的方式將鍵值按照一定算法分配到各個節(jié)點的,但是卻沒有使用一致性哈希算法,而是引入了哈希槽的概念!
這是為什么呢?






