redis2.9版本出現了redis-cluster,測試版本,從3.0正式推出redis-cluster,這個結構的出現徹底解決了搭建使用高可用分布式集群的難處
redis-cluster是乙個既可以高可用主從故障轉移,也可以分片計算,分布式處理資料.從結構上來看比之前高可用分布式做了變換,但是主從複製,故障轉移依然存在.分布式計算邏輯不是hash取餘,不是一致性hash,hash槽道搭建的集群中,會有16384個槽道被分配給多個節點,每個節點管理其中一部分槽道
分布式計算定義 的計算方法已經是hash槽,外界客戶端無論使用哪種分布式計算邏輯,在集群內部都會重新計算分片.
當資料到達某個節點之後,暫時先不處理資料,這個節點作為集群一員先要計算槽道邏輯
1.hash取模 得到0-16383之間整數
2.節點判斷這個整數是否在當前節點管理範圍
3.重定向的節點重新執行上述邏輯.
4.資料遷移
在當前槽道邏輯中,槽道和資料key強耦合,槽道和節點是松耦合,可以將槽道遷移到別的地方,資料也會一併遷移,接觸了key和節點強耦合關係
換一種方式重新描述一下客戶端訪問集群任何乙個節點的過程
當客戶端訪問集群任何乙個節點:
1.key值計算hash取模得到slot槽道
2.當前節點判斷slot歸屬權
3.如果歸屬權為false -----重定向客戶端到正確節點
4.如果歸屬權為true ------直接處理當前客戶端命令
Redis Cluster集群原理
一 redis cluster 官方推薦的 redis 集群解決方案,優點在於去中心化,去中介軟體,也就是說,集群中的每個節點都是平等的關係,都是對等的,每個節點都儲存各自的資料和整個集群的狀態。每個節點都和其他所有節點連線,而且這些連線保持活躍,這樣就保證了我們只需要連線集群中的任意乙個節點,就可...
redis cluster 集群重啟關閉
找遍了redis cluster官方文件,沒發現有關集群重啟和關閉的方法。為啥會沒有呢,猜測redis cluster至少要三個節點才能執行,三颱同時掛掉的可能性比較小,只要不同時掛掉,掛掉的機器修復後在加入集群,集群都能良好的運作,萬一同時掛掉,資料又沒有備份的話,就有 煩了。redis clus...
Redis Cluster集群故障轉移
1.故障發現 1.1 主觀下線,redis集群通過gossip的ping,pong訊息來互相通訊,比如a節點向b節點傳送ping,如果在 cluster node timeout時間內一直失敗,則節點a會認為b是主觀下線,同時將此狀態資訊在集群內廣播 1.2 客觀下線,當半數以上的持有槽的主節點都標...