「簡單的」hash設計與hash算法

前言

本文來源於看redis-cluster相關文章時的某個觀點:"redis-cluster"並無採用一致性hash,而是CRC16。
衆所周知,redis-cluster屬於分佈式架構,而這類系統爲了防止節點數量的調度,採用的hash通常都爲一致性hash。redis-cluster將全部節點對應16384個槽。
當時就納悶了,帶着這個問題,目前暫時得出告終論。redis

HashMap的Hash

其實咱們一直說的hash都是有歧義的,好比HashMap中的hash其實有兩種,一種是hash的設計,一種是hash的算法,hash算法得出的是一個整型,而hash的設計指整型數據對應的是hashmap的每個tab。算法

Redis-cluster的hash

而redis-cluster的hash也是這樣,hash的設計指的是將每一個節點對應一個range範圍,hash算法是Crc(16) mod/ 16384,所以說:"redis-cluster"並無採用一致性hash 指的是hash的算法。架構

結尾

這只是我的的見解,不喜勿噴。。。分佈式

相關文章
相關標籤/搜索