https://www.sohu.com/a/158141377_479559
- 一致性哈希可以有效解決分布式存儲(chǔ)結(jié)構(gòu)下動(dòng)態(tài)增加和刪除節(jié)點(diǎn)所帶來(lái)的問(wèn)題。
- 把key hash 后數(shù)據(jù)范圍構(gòu)成環(huán)形空間
- 緩存節(jié)點(diǎn)按ip hash后分布在環(huán)形空間中,數(shù)據(jù)的存放位置為key hash后順時(shí)針最近的緩存節(jié)點(diǎn)
- 為了避免緩存節(jié)點(diǎn)ip hash后分布不均勻,采用虛擬節(jié)點(diǎn)的方式,每個(gè)物理緩存節(jié)點(diǎn)對(duì)應(yīng)若干個(gè)離散的虛擬節(jié)點(diǎn),找到虛擬節(jié)點(diǎn)再映射回物理節(jié)點(diǎn),環(huán)形中將去掉物理節(jié)點(diǎn),只存在虛擬節(jié)點(diǎn)
- 新增或刪除節(jié)點(diǎn)引起的數(shù)據(jù)丟失,需要重新從DB查詢(xún)數(shù)據(jù)刷新緩存
- 為什么一致性哈希算法更多應(yīng)用于緩存數(shù)據(jù)庫(kù)?
1、分布式緩存系統(tǒng)的節(jié)點(diǎn)部署變化更頻繁,而傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)的分庫(kù)分表相對(duì)穩(wěn)定。
2、關(guān)系數(shù)據(jù)庫(kù)在查詢(xún)不到數(shù)據(jù),相當(dāng)于服務(wù)不可用。