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