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

CentOS7搭建redis叢集

客戶是個關係戶...  開設好centos7虛擬機器的同時還得搭建好redis叢集。安裝過程很順利,沒有遇到什麼坑。

環境介紹:兩臺centos7系統+redis 4.0.11;每臺centos上面三個節點,共6節點。

 

10.15.0.5  對應埠為7000  7001  7002

10.15.0.6  對應埠為7000  7001  7002

注意 ,redis 叢集使用redis-trib.rb 必須3主3從 ,也就是6個節點!

 

具體步驟如下:

1.下載redis軟體包,解壓

cd /usr/local/software 
wgethttp://download.redis.io/releases/redis-4.0.11.tar.gz
tar -zxvf redis-4.0.11.tar.gz
cd redis-4.0.11

2. 安裝軟體

make && make install

3. 配置軟體

   將redis-trib.rb複製到/usr/local/bin目錄下

cd src
cp redis-trib.rb /usr/local/bin

   建立軟體以及節點執行目錄,複製配置檔案

cd /usr/local
mkdir redis-cluster
cd redis-cluster
mkdir redis-4.0.11-node1 redis-4.0.11-node2 redis-4.0.11-node3 
cd redis-4.0.11-node1
mkdir logs data 
cd /usr/local/software/redis-4.0.11 
cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node1
cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node2
cp redis.conf /usr/local/redis-cluster/redis-4.0.11-node3
cd src 
cp redis.cli redis.server   /usr/local/redis-cluster/redis-4.0.11-node1
cp redis.cli redis.server   /usr/local/redis-cluster/redis-4.0.11-node2
cp redis.cli redis.server   /usr/local/redis-cluster/redis-4.0.11-node3

    修改配置檔案,6個節點都要修改

vim /usr/local/redis-4.0.11-node1/redis.conf   //其他兩個類似

    找到以下資訊並參照如下修改

bind 10.15.0.5 //需要改為其他節點機器可訪問的ip 否則無法成功建立叢集
port  7000 //埠號根據節點對應分配 7000,7001,7002
daemonize yes //redis後臺執行
pidfile /usr/local/redis-cluster/redis-4.0.11-node1/redis_7000.pid //pidfile檔案對應7000,7001,7002
cluster-enabled yes //開啟叢集
cluster-config-file nodes_7000.conf //叢集的配置 配置檔案首次啟動自動生成 7000,7001,7002
cluster-node-timeout 15000 //請求超時時間
appendonly yes
logfile "/usr/local/redis-cluster/redis-4.0.11-node1/logs/redis_7001.log" //配置日誌檔案路徑
dir "/usr/local/redis-cluster/redis-4.0.11-node1/data"  //配置資料檔案存放路徑

4. 執行節點

cd /usr/local/redis-cluster/redis-4.0.11-node1
./redis.server redis.conf
cd /usr/local/redis-cluster/redis-4.0.11-node2
./redis.server redis.conf
cd /usr/local/redis-cluster/redis-4.0.11-node3
./redis.server redis.conf

//可以建立指令碼,設定開機自啟動
//檢查是否執行
ps -ef | grep redis

5. 利用redis-trib.rb建立叢集

    安裝依賴ruby

yum -y install ruby ruby-devel rubygems rpm-build
gem install redis

    如果出現如下錯誤,需要升級Ruby

curl -L get.rvm.io | bash -s stable

    如果出現如下錯誤,需要獲得金鑰

gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

#執行如下指令

curl -sSL https://get.rvm.io | bash -s stable

    安裝ruby

source /usr/local/rvm/scripts/rvm
rvm list known              #檢視安裝版本
rvm install 2.3.0

6. 安裝gem redis介面

rvm use 2.3.0
rvm remove 1.8.7
ruby --version
gem install redis

7. 安裝rubygems

yum install -y rubygems

8. 建立叢集

    記得在防火牆上面放行對應埠

redis-trib.rb create --replicas 1 10.15.0.5:7000 10.15.0.5:7001 10.15.0.5:7002 10.15.0.6:7000 10.15.0.6:7001 10.15.0.6:7002

###呼叫 ruby 命令來進行建立叢集,--replicas 1   表示主從複製比例為 1:1,即一個主節點對應一個從節點。

    如果連線失敗,檢查防火牆等;再者,將logs和data檔案先清空,重啟redis。出現下圖,表示叢集建立成功!

9. 測試連線

    隨便進入一個節點,設定k值。

redis-cli -h 10.15.0.5 -c -p 7000
set name ashq

### 另外選一個節點驗證name

redis-cli -h 10.15.0.6 -c -p 7002
get name


###可看到name為ashq,成功!

10. 寫在最後

成功往往並不代表結束,還需更深入地學習。

動態擴容、增加節點和減少節點,重新分配槽大小,怎麼跟程式結合等。