Redis集羣的搭建

一、redis-cluster架構圖


redis-cluster把所有的物理節點映射到[0-16383]slot上,cluster 負責維護node<->slot<->value


Redis 集羣中內置了 16384 個哈希槽,當需要在 Redis 集羣中放置一個 key-value 時,redis 先對 key 使用 crc16 算法算出一個結果,然後把結果對 16384 求餘數,這樣

每個 key 都會對應一個編號在 0-16383 之間的哈希槽,redis 會根據節點數量大致均等的將哈希槽映射到不同的節點


Key:a

計算ahash值,例如值爲100100這個槽在server1上,所以a應該放到server1.

 

Key:hello

Hash值:10032,此槽在server2上。Hell可以應該存在server2.


二、redis-cluster投票:容錯



(1)領着投票過程是集羣中所有master參與,如果半數以上master節點與master節點通信超過(cluster-node-timeout),認爲當前master節點掛掉.

(2):什麼時候整個集羣不可用(cluster_state:fail)? 

    a:如果集羣任意master掛掉,且當前master沒有slave.集羣進入fail狀態,也可以理解成集羣的slot映射[0-16383]不完成時進入fail狀態. ps : redis-3.0.0.rc1加入cluster-require-full-coverage參數,默認關閉,打開集羣兼容部分失敗.

    b:如果集羣超過半數以上master掛掉,無論是否有slave集羣進入fail狀態.

  ps:當集羣不可用時,所有對集羣的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)錯誤


以上是redis的簡單介紹,下面我們開始搭建集羣環境

下次寫



發佈了27 篇原創文章 · 獲贊 8 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章