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