redis cluster 集羣架構

  1. 關於redis cluster 集羣
    redis cluster集羣是分佈式的。
    1.1 redis 集羣數據分片(redis cluster data sharding)-哈希槽的概念
    有M個哈希槽,每一個master會有[0,M]個哈希槽slots。當若干個master擁有的哈希槽的集合總數爲M時,該redis cluster才能所有讀寫工做正常態。
    1.2 master - slave
    slave是master 的replicas,salve自己不佔哈希槽slots.一個master能夠沒有或有任意個slave,每一個master擁有的salve數量是任意的。
    這裏寫圖片描述
    當某個master 掛掉(failover)時候,slave會自動頂替它的master
    這裏寫圖片描述
    若是某個master恰巧沒有slave,掛掉以後,整個redis集羣就都掛掉了這裏寫圖片描述
    1.3 redis 集羣的一致性。
    redis集羣是不保證嚴格一致性(strong consistency)的,即老是存在某個write,返回成功,而實際沒有成功的機率的。由於redis 使用的是異步複製(asynchronous)
    同步複製與異步複製
    你能夠使用wait,實現同步複製(synchronous),這會減小write失敗的機率,可是對性能就下降了。即便這樣也不能保證嚴格一致性(strong consistency).由於總存在某個狀況備份時候,一個slave沒有收到master 的write同步,卻被選舉爲master。(it is always possible under more complex failure scenarios that a slave that was not able to receive the write is elected as master).
    例如當正好有個write command傳入給master A,A存儲後迴應客戶端OK(還來不及slave同步),極短的時間內該master down,它的一個slave 被選舉爲master,可是該new master根本不知道剛剛的write command的事情。
    redis slave被選爲master

2.關於Redis cluster 操做大致步驟
redis集羣ios

參考資料:redis

相關文章
相關標籤/搜索