Redis Cluster(Redis 3.X)設計要點

來源:互聯網
上載者:User

標籤:style   http   io   os   使用   ar   strong   sp   資料   

Redis 3.0.0 RC1版本10.9號發布,Release Note
這個版本支援 Redis Cluster,相信很多同學期待已久,不過這個版本只是RC版本,要應用到生產環境,還得等等

Redis Cluster設計要點:

架構:無中心Redis Cluster採用無中心結構,每個節點都儲存資料和整個叢集的狀態
每個節點都和其他所有節點串連,這些串連保持活躍
使用gossip協議傳播資訊以及發現新節點
node不作為client請求的代理,client根據node返回的錯誤資訊重新導向請求

資料分布:預分桶預分好16384個桶,根據 CRC16(key) mod 16384的值,決定將一個key放到哪個桶中
每個Redis物理結點負責一部分桶的管理,當發生Redis節點的增減時,調整桶的分布即可
例如,假設Redis Cluster三個節點A/B/C,則
Node A 包含桶的編號可以為: 0 到 5500.
Node B 包含桶的編號可以為: 5500 到 11000.
Node C包含桶的編號可以為: 11001 到 16384.

當發生Redis節點的增減時,調整桶的分布即可。
預分桶的方案介於“硬Hash”和“一致性Hash”之間,犧牲了一定的靈活性,但相比“一致性Hash“,資料的管理成本大大降低

可用性:Master-Slave為了保證服務的可用性,Redis Cluster採取的方案是的Master-Slave
每個Redis Node可以有一個或者多個Slave。當Master掛掉時,選舉一個Slave形成新的Master
一個Redis  Node包含一定量的桶,當這些桶對應的Master和Slave都掛掉時,這部分桶對應的資料不可用

寫Redis Cluster使用非同步複製
一個完整的寫操作步驟:
1.client寫資料到master
2.master告訴client "ok"
3.master傳播更新到slave
存在資料丟失的風險:
1. 上述寫步驟1)和2)成功後,master crash,而此時資料還沒有傳播到slave
2. 由於分區導致同時存在兩個master,client向舊的master寫入了資料。
當然,由於Redis Cluster存在逾時及故障恢複機制,第2個風險基本上不可能發生

資料移轉Redis Cluster支援線上增/減節點。
基於桶的資料分布方式大大降低了遷移成本,只需將資料桶從一個Redis Node遷移到另一個Redis Node即可完成遷移。
當桶從一個Node A向另一個Node B遷移時,Node A和Node B都會有這個桶,Node A上桶的狀態設定為MIGRATING,Node B上桶的狀態被設定為IMPORTING
當用戶端請求時:
所有在Node A上的請求都將由A來處理,所有不在A上的key都由Node B來處理。同時,Node A上將不會建立新的key

多key操作當系統從單節點向多節點擴充時,多key的操作總是一個非常難解決的問題,Redis Cluster方案如下:
1. 不支援多key操作
2. 如果一定要使用多key操作,請確保所有的key都在一個node上,具體方法是使用“hash tag”方案
hash tag方案是一種資料分布的例外情況


Reference:
Redis cluster tutorial
Redis cluster Specification



Redis Cluster(Redis 3.X)設計要點

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.