redis cluster 分片算法

redis cluster:

(1)自動將數據進行分片,每個master上放一部分數據
(2)提供內置的高可用支持,部分master不可用時,還是可以繼續工作的

 

分片算法:

hash算法 -> 一致性hash算法(memcached) -> redis cluster,hash slot算法

 

1、hash算法和弊端(大量緩存重建)

2、一致性hash算法(自動緩存遷移)+虛擬節點(自動負載均衡)

增加虛擬節點解決緩存熱點問題

3、redis cluster的hash slot算法

redis cluster有固定的16384個hash slot,對每個key計算CRC16值,然後對16384取模,可以獲取key對應的hash slot

redis cluster中每個master都會持有部分slot,比如有3個master,那麼可能每個master持有5000多個hash slot

hash slot讓node的增加和移除很簡單,增加一個master,就將其他master的hash slot移動部分過去,減少一個master,就將它的hash slot移動到其他master上去

移動hash slot的成本是非常低的

客戶端的api,可以對指定的數據,讓他們走同一個hash slot,通過hash tag來實現

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章