天天看點

Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結

Redis叢集搭建——去中心化叢集

  • 前言
  • 一、什麼是去中心化叢集?
  • 二、主從模式叢集的搭建案例
  • 三、主從模式的優缺點
  • 總結

前言

一般情況下,為了減輕資料庫的通路壓力,我們會把熱點資料儲存在記憶體中而不是直接從後端資料庫中讀取。Redis雖然是一個極其優秀的非關系型資料庫,但是在大型網站應用,熱點資料的并發通路量達到百萬千萬是很正常的,這個時候單個redis就不能夠保證資料量的通路和存儲。這個時候我們就可以搭建redis叢集,可以保證資料的分散存儲與資料的一緻性,實作redis的高可用,發生故障時保證程式的正常運作與資料的儲存。

Redis有幾種叢集模式,每種模式都有它各自的特點,下面将介紹redis的叢集搭模組化式之一:去中心化叢集。

提示:以下是本篇文章正文内容,下面案例可供參考

一、什麼是去中心化叢集?

redis的主從模式(Redis Cluster),原理采用hash槽的概念,預先配置設定16384個卡槽,并且将該卡槽配置設定給提供具體服務的Redis片區節點用來存放每個Redis主機對應卡槽範圍的資料,對于每次讀寫操作的的Key值都會計算對應的卡槽數,根據計算出的卡槽數會把Key存入到卡槽區間範圍包含這個卡槽數的Redis主機中,或者從包含這個Key卡槽數的卡槽範圍的Redis主機中擷取Key。

Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結

二、主從模式叢集的搭建案例

必須保證aof開啟,保證redis中沒有資料。

1.建立新的目錄存放redis.conf

1.打開redis安裝目錄,建立目錄
mikdir decentralized-cluster
2. 把redis配置檔案複制到建立目錄,我的是decentralized-cluster
cp  redis.conf  redis安裝目錄/decentralized-cluster
           

2.進入decentralized-cluster目錄,修改redis.conf檔案名和内容,開啟RDB快照并且修改快照檔案儲存名字

mv redis.conf redis8001.conf
vi redis.conf
conf檔案修改内容:
daemonize yes
appendonly yes
# 開啟叢集
cluster-enabled yes             833行
# 叢集的配置檔案,該檔案自動生成   
cluster-config-file nodes-8001.conf  841行
# 叢集的逾時時間
cluster-node-timeout 5000         847行
           
Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結
Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結

3.再複制5個配置檔案,修改對應的端口為8002,8003…,對應檔案名appendonly8002.aof…對應的#叢集的配置檔案, cluster-config-file nodes-8002.conf…(如上)

cp redis.conf redis8002.conf
cp redis.conf redis8003.conf
cp redis.conf redis8004.conf
cp redis.conf redis8005.conf
cp redis.conf redis8006.conf
           

4.啟動redis時指定上面的6個配置檔案

redis-server redis8001.conf
redis-server redis8002.conf
......
           
Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結

5.為主節點配置設定槽以及配置設定從節點

cluster-replica:每個主節點跟随的從節點的個數

redis-cli --cluster create --cluster-replicas 1 主機IP:端口 …

redis-cli --cluster create --cluster-replicas 1 127.0.0.1:8001 127.0.0.1:8002 127.0.0.1:8003 127.0.0.1:8004  127.0.0.1:8005  127.0.0.1:8006
           
Redis叢集搭建——去中心化叢集前言一、什麼是去中心化叢集?二、主從模式叢集的搭建案例三、主從模式的優缺點總結

這樣一個簡易的去中心化叢集就配置成功了

三、主從模式的優缺點

優點:

去中心化模式

資料按照槽存儲分布在多個節點,節點間資料共享,可動态調整資料分布;

可擴充性:可線性擴充到 1000 多個節點,節點可動态添加或删除;

高可用性:部分節點不可用時,叢集仍可用。通過增加 Slave 做 standby 資料副本,能夠實作故障自動 failover,節點之間通過 gossip 協定交換狀态資訊,用投票機制完成 Slave 到 Master 的角色提升;

降低運維成本,提高系統的擴充性和可用性。

缺點:

1.Client 實作複雜,驅動要求實作 Smart Client,緩存 slots mapping 資訊并及時更新,提高了開發難度,用戶端的不成熟影響業務的穩定性。目前僅 JedisCluster 相對成熟,異常處理部分還不完善,比如常見的“max redirect exception”。

2.節點會因為某些原因發生阻塞(阻塞時間大于 clutser-node-timeout),被判斷下線,這種 failover 是沒有必要的。

3.資料通過異步複制,不保證資料的強一緻性。

總結

以上就是今天要講的内容,本文僅僅簡單介紹了去中心化叢集的配置使用,想要更好的使用去中心化叢集還需要我們更深入的學習。

繼續閱讀