1. 程式人生 > >Redis3.x-叢集搭建

Redis3.x-叢集搭建

今天咱們來搭建一下Redis叢集,要讓叢集正常工作至少需要3個主節點,在這裡我們要建立6個redis節點,其中三個為主節點,三個為從節點,對應的redis節點的ip和埠對應關係如下。

127.0.0.1:7000
127.0.0.1:7001
127.0.0.1:7002
127.0.0.1:7003
127.0.0.1:7004
127.0.0.1:7005

1:下載redis。官網下載3.0.0版本,之前2.幾的版本不支援叢集模式

2:上傳伺服器,解壓,編譯

tar -zxvf redis-3.0.0-rc2.tar.gz 

mv redis-3.0.0-rc2.tar.gz redis3.0

cd /usr/local/redis3.0
Make make install

3:建立叢集需要的目錄

mkdir -p /usr/local/cluster
cd /usr/local/cluster
mkdir 7000
mkdir 7001
mkdir 7002
mkdir 7003
mkdir 7004
mkdir 7005  
[root@localhost redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7000
[root@localhost redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7001
[root@localhost
redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7002 [root@localhost redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7003 [root@localhost redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7004 [root@localhost redis]# cp -rf /usr/local/redis/bin/* /usr/local/rediscluster/7005

4:修改配置檔案redis.conf

cp /usr/local
/redis3.0/redis.conf /usr/local/cluster
vi redis.conf

修改配置檔案中的下面選項

port 7000
daemonize yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

修改完redis.conf配置檔案中的這些配置項之後把這個配置檔案分別拷貝到7000/7001/7002/7003/7004/7005目錄下面

cp /usr/local/cluster/redis.conf /usr/local/cluster/7000
cp /usr/local/cluster/redis.conf /usr/local/cluster/7001
cp /usr/local/cluster/redis.conf /usr/local/cluster/7002
cp /usr/local/cluster/redis.conf /usr/local/cluster/7003
cp /usr/local/cluster/redis.conf /usr/local/cluster/7004
cp /usr/local/cluster/redis.conf /usr/local/cluster/7005

注意:拷貝完成之後要修改7001/7002/7003/7004/7005目錄下面redis.conf檔案中的port引數,分別改為對應的資料夾的名稱

5:分別啟動這6個redis例項

cd /usr/local/cluster/7000
./redis-server redis.conf

cd /usr/local/cluster/7001
./redis-server redis.conf


cd /usr/local/cluster/7002
./redis-server redis.conf


cd /usr/local/cluster/7003
./redis-server redis.conf


cd /usr/local/cluster/7004
./redis-server redis.conf


cd /usr/local/cluster/7005
./redis-server redis.conf

啟動之後使用命令檢視redis的啟動情況

ps -ef|grep redis

如下圖顯示則說明啟動成功 :

這裡寫圖片描述

6:執行redis的建立叢集命令建立叢集

cd /usr/local/redis3.0/src
./redis-trib.rb  create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005    

6.1 執行上面的命令的時候會報錯,因為是執行的ruby的指令碼,需要ruby的環境

這裡寫圖片描述

錯誤內容:/usr/bin/env: ruby: No such file or directory
所以需要安裝ruby的環境,這裡推薦使用yum install ruby安裝

解決方式:

yum install ruby    

6.2然後再執行第6步的建立叢集命令,還會報錯,提示缺少rubygems元件,使用yum安裝

錯誤內容:

./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)
from ./redis-trib.rb:24

解決方式:

yum install rubygems    

6.3再次執行第6步的命令,還會報錯,提示不能載入redis,是因為缺少redis和ruby的介面,使用gem 安裝

這裡寫圖片描述

錯誤內容:

/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- redis (LoadError)
    from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in `require'
    from ./redis-trib.rb:25:in `<main>'

解決方式:

gem install redis    

BUT, 執行上面的命令後發現並沒有什麼反應,由於國內網路原因(你懂的),導致 rubygems.org 存放在 Amazon S3 上面的資原始檔間歇性連線失敗。新增淘寶的gem源

解決方式:

[root@localhost src]# gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/

https://ruby.taobao.org/ added to sources
https://rubygems.org/ removed from sources
[root@localhost src]# 
[root@localhost src]# gem install redis

6.4 再次執行第6步的命令,正常執行

這裡寫圖片描述

把127.0.0.1 改成實際ip

輸入yes,然後配置完成。

至此redis叢集即搭建成功!

這裡寫圖片描述

7:使用redis-cli命令進入叢集環境

redis-cli -c -p 7000

這裡寫圖片描述


至此,Redis叢集搭建成功。