1. 程式人生 > >linux中搭建redis叢集

linux中搭建redis叢集

一、引言

再過一個週末,終於可以按步就班的工作了,想想就開心,哈哈哈哈~~~~

之前咱們從redis單機版、資料型別、高階應用、整合spring,終於到我們redis叢集了。redis搭建redis叢集也一樣的簡單,但是redis搭建叢集涉及到了ruby指令碼語言,可能有些同學聽說過。ruby是一位日本的朋友開發的,具體介紹點選這裡來檢視!

二、redis叢集環境的安裝

為了保證ruby指令碼能正常執行,所以我們先得安裝ruby,按順序執行以下命令。

yum install ruby

           yum install rubygems

cd /usr/local/src/

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem

gem install redis-3.2.1.gem

三、搭建redis叢集

叢集結構:咱們搭建3個redis的叢集,每一個redis是一主一備,只是為了保證redis更高效的工作。如果在redis叢集中並且沒有備份節點的情況下,只要有其中一個redis服務掛掉了,則整個redis叢集不可用,所以需要一個備份節點來保證。還是和以前一樣,搭建在一臺伺服器上, 按實際來說應該是每一臺服務上安裝一個redis即可。

步驟一:建立redis的6個例項,一主一備,所以是6個redis例項。將單機版中的redis、或者是說將安裝後的redis,其中有一個bin目錄,複製到redis-cluster目錄下,並改名為redis01、02、03.....,最後複製完成如下圖。

mkdir /usr/local/redis-cluster

cp -r bin /usr/local/redis-cluster/redis01 #先要進入redis安裝目錄,在執行此命令,記住需要改名執行6次

步驟二修改每一個redis.conf檔案,設定redis啟動的埠號,切記不能重複,小編這裡設定的埠號是:7001~7006。並且把 cluster-enabled yes 註釋去掉。 

步驟三:在redis安裝解壓包中,src目錄下有個redis-trib.rb,複製到redis-cluster中。

cp src/*.rb /usr/local/redis-cluster/  #先需要進入到redis安裝包解壓後的目錄中執行

步驟四:把6個redis例項全部啟動。

步驟五:使用redis-trib.rb檔案建立redis叢集,這個.rb的檔案也就是ruby指令碼語言,執行以下命令。最後如下圖,則表示搭建成功了。

./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005  192.168.25.153:7006

四、可能會遇到的問題

解決辦法:使用客戶端登入每一個redis例項,執行 flushall  和 cluster reset  就可以了。

問題二:Waiting for the cluster to join.......  一直在等待

解決辦法:這個是因為redis叢集不僅僅要開發redis客戶端連線的埠號,還需要將redis叢集匯流排的埠號開發。

redis匯流排的埠號是:redis連線埠+10000 ,比如連線埠7001,那麼匯流排埠是17001