redis叢集相關資料

來源:互聯網
上載者:User

標籤:

Cluster簡介

        Redis 3.0引入的cluster。cluster是具有有自動資料分區、容錯、針對讀取速度有了顯著的提升、改進了AOF重寫等的redis分布式實現。

    Redis 叢集是一個分布式(distributed)、容錯(fault-tolerant)的 Redis 實現, 叢集可以使用的功能是普通單機 Redis 所能使用的功能的一個子集(subset)。

    Redis 叢集中不存在中心(central)節點或者代理(proxy)節點, 叢集的其中一個主要設計目標是達到線性可擴充性(linear scalability)。

    Redis 叢集為了保證一致性(consistency)而犧牲了一部分容錯性: 系統會在保證對網路斷線(net split)和節點失效(node failure)具有有限(limited)抵抗力的前提下, 儘可能地保持資料的一致性。

目前支援的叢集特性
  1. 節點自動探索

  2. slave->master 選舉,叢集容錯

  3. Hot resharding:線上分區

  4. 叢集管理

  5. 基於配置(nodes-port.conf)的叢集管理

  6. ASK 轉向/MOVED 轉向機制.

redis cluster 架構

架構細節:

(1)所有的redis節點彼此互聯(PING-PONG機制),內部使用二進位協議最佳化傳輸速度和頻寬.

(2)節點的fail是通過叢集中超過半數的節點檢測失效時才生效.

(3)用戶端與redis節點直連,不需要中間proxy層.用戶端不需要串連叢集所有節點,串連叢集中任何一個可用節點即可

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

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)錯誤


參考

http://redisdoc.com/


redis叢集相關資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.