redis cluster介紹& hash slot算法


1、redis cluster介紹

redis cluster

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

在redis cluster架構下,每個redis要放開兩個端口號,比如一個是6379,另外一個就是加10000的端口號,比如16379

16379端口號是用來進行節點間通信的,也就是cluster bus的東西,集群總線。cluster bus的通信,用來進行故障檢測,配置更新,故障轉移授權

cluster bus用了另外一種二進制的協議,主要用於節點間進行高效的數據交換,占用更少的網絡帶寬和處理時間

2、最老土的hash算法和弊端(大量緩存重建)

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

4、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來實現

redis cluster 節點間采用gossip協議進行通信

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM