redis-cluster

來源:本站原創 Linux 超過241 views圍觀 0條評論

一,為什么要用redis-cluster

1.并發問題
redis官方生成可以達到 10萬/每秒,每秒執行10萬條命令
假如業務需要每秒100萬的命令執行呢?

2.數據量太大

一臺服務器內存正常是16~256G,假如你的業務需要500G內存,你怎么辦?解決方案如下

  1. 配置一個超級牛逼的計算機,超大內存,超強cpu,但是問題是。。。。

2.正確的應該是考慮分布式,加機器,把數據分到不同的位置,分攤集中式的壓力

二,客戶端分片

redis實例集群主要思想是將redis數據的key進行散列,通過hash函數特定的key會映射到指定的redis節點上

數據分布

順序分區

哈希分區(redis-cluster用的是哈希分區)

節點取余

 

計算示例 

節點  0 1 2

對1到6取余

1  1/3 =1  對應 節點1

2  2/3 =2 對應 節點2

3  3/3 =0  對應 節點0

4  4/3 =1

5  5/3 = 2

6  6/3 = 0

 

 

 

例如按照節點取余的方式,分三個節點

1~100的數據對3取余,可以分為三類

  • 余數為0
  • 余數為1
  • 余數為2

那么同樣的分4個節點就是hash(key)%4

節點取余的優點是簡單,客戶端分片直接是哈希+取余

一致性哈希

客戶端進行分片,哈希+順時針取余

 

是個封閉 環

 

虛擬槽分區
每一個數據的鍵被哈希函數映射到一個槽位,redis-cluster規定一共有16384個槽位

三,搭建集群

單機模式

分布式架構

分布式架構

多個服務端,負責讀寫,彼此通信,redis指定了16384個槽,ruby的腳本自動就把分配槽位這事做了

文章出自:CCIE那點事 http://www.qdxgqk.live/ 版權所有。本站文章除注明出處外,皆為作者原創文章,可自由引用,但請注明來源。 禁止全文轉載。
本文標題:redis-cluster
本文鏈接:http://www.qdxgqk.live/?p=4190轉載請注明轉自CCIE那點事
如果喜歡:點此訂閱本站
?
?
萌宠夺宝游戏 新疆时时开奖走势 海南环岛赛规则 山西11选5 有什么做时时彩计划准的软件 金博棋牌官方正版下载 彩票哥 大乐透走势 南粤36选7玩法 四川时时彩 简朴美女捕鱼视频 最好股票推荐 湖北麻将红中赖子杠诀窍 北京pk10 海南41开奖结果查询 辽宁11选5前3图表 3d开机号