Redis 集羣搭建

爲何搭建集羣?node

  • 自動把數據劃分到各個節點
  • 單個節點故障時可繼續工做

集羣中每一個節點通常須要兩個端口redis

  • 10000 Redis Cluster 節點對節點的Communication channel,用於節點通訊
  • 6379 普通的server client

Redis Cluster通常與Docker配合使用.Docker 提供port mapping技術,能夠讓一個程序實際運行的端口與暴露在外的端口不一樣,也就是可以讓一個端口運行多個程序。算法

Redis Cluster 的數據分片(sharding翻譯過來是這個吧)app

  • 算法:一個Redis Cluster有16384個key slot(槽),對於一個給定的key咱們按必定方式對16384取模
  • 每一個node負責一部分的key slot. 如如今集羣裏有三個節點A,B,C。 給A分配0~5500的key slot,B分配5500~11000,C分配11001~16384的key slot。 一個命令若涉及多個key,那麼這些key都屬於一個slot

master-slave模型翻譯

  • 爲了保證集羣的available,cluster爲每個master node 建立了一個slave node.如如今有三個node A,B,C,在建立它們的同時又建立了A1,B1,C1做爲備份。A掛了就用A1,A1掛了那就沒辦法了。

Redis Cluster的一致性server

  • redis提供wait命令,實現同步寫,但在複雜狀況下仍可能出現寫丟失。
  • node timeout ,這個時間事後mastrer被它的replicas替代。這個參數很重要
相關文章
相關標籤/搜索