Redis的使用:叢集的搭建詳情,redis叢集搭建詳情

來源:互聯網
上載者:User

Redis的使用:叢集的搭建詳情,redis叢集搭建詳情
主題詞:負載平衡高可用、redis叢集

需求:負載平衡高可用的概念

什麼是負載平衡高可用

Nginx一般用作負載平衡伺服器,可見處於網路中非常重要的位置,一旦Nginx伺服器宕機無法提供服務,那麼將影響嚴重。所以需要負載平衡高可用。

高可用——主從備份

keepalived+nginx實現主從備份

Keepalived的作用是檢測伺服器的狀態,如果有一台web伺服器宕機,或工作出現故障,Keepalived將檢測到,並將有故障的伺服器從系統中剔除,同時使用其他伺服器代替該伺服器的工作,當伺服器工作正常後Keepalived自動將伺服器加入到伺服器群中,這些工作全部自動完成,不需要人工幹涉,需要人工做的只是修複故障的伺服器。

keepalived工作原理

keepalived是以VRRP協議為實現基礎的,VRRP全稱Virtual Router Redundancy Protocol,即虛擬路由冗餘協議。

虛擬路由冗餘協議,可以認為是實現路由器高可用的協議,即將N台提供相同功能的路由器組成一個路由器組,這個組裡面有一個master和多個backup,master上面有一個對外提供服務的vip(該路由器所在區域網路內其他機器的預設路由為該vip),master會發組播,當backup收不到vrrp包時就認為master宕掉了,這時就需要根據VRRP的優先順序來選舉一個backup當master。這樣的話就可以保證路由器的高可用了。

keepalived主要有三個模組,分別是core、check和vrrp。core模組為keepalived的核心,負責主進程的啟動、維護以及全域設定檔的載入和解析。check負責健全狀態檢查,包括常見的各種檢查方式。vrrp模組是來實現VRRP協議的。

需求:完成redis叢集的搭建

瞭解叢集和主從的區別

redis叢集基本概念

redis叢集中至少應該有三個節點。要保證叢集的高可用,每個節點需要有一個備份機。因此redis叢集至少需要六台伺服器

這裡搭建的是偽分布模式,可以使用一台伺服器運行6個redis執行個體,修改redis的連接埠號碼為7001-7006

redis叢集的搭建

安裝ruby環境
yum install rubyyum install rubygems
安裝ruby指令碼運行使用的包
# 離線安裝gem install redis-3.0.7.gem
# 線上安裝gem install redis -v 3.0.7
建立6台伺服器,將6台的連接埠號碼修改7001——7006
1、將連接埠修改為7001-70062、將叢集前面#注釋去除 cluster-enabled yes3、如果是雲端服務器,例如連接埠是7001,則將7001和17001加入安全性群組
清除每一個節點的快取資料
bin/redis-cli -p 7002 -c127.0.0.1:7002> flushallOK127.0.0.1:7002> cluster resetOK127.0.0.1:7002> quit[root@VM_241_143_centos redis02]# cd ..[root@VM_241_143_centos redis-cluster]# cd redis03[root@VM_241_143_centos redis03]# bin/redis-cli -p 7003 -c127.0.0.1:7003> flushallOK127.0.0.1:7003> cluster resetOK127.0.0.1:7003> quit
自訂shell指令碼啟動6台伺服器
cd /usr/local/redis-cluster/redis01bin/redis-server redis.confcd ../redis02bin/redis-server redis.confcd ../redis03bin/redis-server redis.confcd ../redis04bin/redis-server redis.confcd ../redis05bin/redis-server redis.confcd ../redis06bin/redis-server redis.conf

自訂shell指令碼關閉6台伺服器交給大家來做

運行如下代碼搭建叢集環境

./redis-trib.rb create --replicas 1 10.31.152.30:7001 10.31.152.30:7002 10.31.152.30:7003 10.31.152.30:7004 10.31.152.30:7005 10.31.152.30:7006
./redis-trib.rb create --replicas 1 10.31.166.22:9001 10.31.166.22:9002 10.31.166.22:9003 10.31.166.22:9004 10.31.166.22:9005 10.31.166.22:9006
./redis-trib.rb create --replicas 1 119.29.181.95:7001 119.29.181.95:7002 119.29.181.95:7003 119.29.181.95:7004 119.29.181.95:7005 119.29.181.95:7006
叢集建立成功的兩張


用戶端如何串連叢集中的機器
# -p 連接埠號碼# -c 開啟reidis cluster模式,串連redis cluster節點時候使用bin/redis-cli -p 7004 -c
往叢集節點存入資料進行測試,查看資料到底存入到哪個節點

redis叢集中內建了16384個雜湊槽,當需要往叢集中存放索引值對的時候,redis先對key使用CRC16演算法算出一個結果,然後拿這個結果對16384求餘,這樣每個key都會對應一個編號為0-16383之間的雜湊槽,redis會根據節點數量大致均等的將雜湊槽映射到不同的節點上

聯繫我們

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