redis集羣搭建(僞集羣)

1.準備工做

去官網下載好你想要安裝的redis版本,下載連接html

2.搭建步驟

輸入命令yum install gcc-c++安裝好gcc環境,將下載好的redis安裝包上傳到 /usr/localnode

解壓redis安裝包c++

tar -zxvf redis-4.0.11.tar.gzredis

進入解壓後的目錄進行編譯ruby

cd /usr/local/redis-4.0.11app

makespa

編譯這一步能夠指定目錄,也就是安裝的指定目錄3d

把上一步的make 寫成  make PREFIX=/usr/local/redis install   (在這裏我指定的目錄爲 /usr/local/redis)日誌

安裝完畢以後 redis文件夾下面會生成一個bin目錄code

bin目錄下有如下幾個文件

複製redis.conf到bin目錄下

cp  /usr/local/redis-4.0.11 /usr/local/redis/bin

進入bin目錄

cd /usr/local/redis/bin

編輯redis.conf

vi redis.conf

進行以下修改

daemonize    yes                          //redis後臺運行
cluster-enabled  yes                      //開啓集羣  把註釋#去掉
cluster-node-timeout  5000                //請求超時  設置5秒夠了
appendonly  yes                           //aof日誌開啓  有須要就開啓,它會每次寫操做都記錄一條日誌

建立集羣目錄

cd /usr/local

mkdir redis-cluster

將bin目錄下的文件拷貝到集羣目錄下的節點目錄中,共有6個目錄,分別是redis0一、redis0二、redis0三、redis0四、redis0五、redis06

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis01

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis02

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis03

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis04

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis05

cp -r /usr/local/redis/bin/ /usr/local/redis-cluster/redis06

對每一個目錄下的redis.conf文件進行以下修改

pidfile  /var/run/redis_7001.pid          //redis01下7001,redis下7002,以此類推,下同
port  7001                               
cluster-config-file  nodes_7001.conf      //集羣的配置  配置文件首次啓動自動生成 7001,7002,7003

在redis-cluster目錄下新建一個啓動腳本start-all.sh

cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..

給啓動腳本賦予權限

chmod +x start.sh

執行啓動腳本,啓動redis

./start-all.sh

將redis源碼目錄src下的redis-trib.rb拷貝到redis-cluster目錄下

cp /usr/local/redis-4.0.11/src/redis-trib.rb /usr/local/redis-cluster

根據這個redis-trib.rb這個文件的後綴,很明顯還須要安裝ruby,查看是否安裝ruby以及版本

ruby -version

低於2.2的版本在後續安裝中會出現問題,如安裝的版本低於2.2,則須要安裝2.2以上的版本

具體安裝步驟能夠參考博主的另外一篇博客:搭建redis集羣的過程當中遇到的問題

安裝好ruby環境以後,再用 gem 這個命令來安裝 redis接口 

gem install redis

安裝完事兒以後,執行redis-trib.rb

/usr/local/redis-cluster/redis-trib.rb  create  --replicas  1  192.168.25.133:7001 192.168.25.133:7002  192.168.25.133:7003 192.168.25.133:7004  192.168.25.133:7005  192.168.25.133:7006

如遇到以下提示信息Can I set the above configuration? (type 'yes' to accept):輸入Y

建立成功會出現以下的信息:

>>> Creating cluster
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.106.132:7001
192.168.106.132:7002
192.168.106.132:7003
Adding replica 192.168.106.132:7004 to 192.168.106.132:7001
Adding replica 192.168.106.132:7005 to 192.168.106.132:7002
Adding replica 192.168.106.132:7006 to 192.168.106.132:7003
M: 6c388e0cd04990b23e2e65b285b5f9c1bc996538 192.168.106.132:7001
slots:0-5460 (5461 slots) master
M: 01e9cd67978b1cad73a40e9a70000a236744cb17 192.168.106.132:7002
slots:5461-10922 (5462 slots) master
M: 72a649017fdd5d4045f9d58df8b231c2d69e6c32 192.168.106.132:7003
slots:10923-16383 (5461 slots) master
S: b90aa487cf48270df43e79af98807bb5ffabbe34 192.168.106.132:7004
replicates 6c388e0cd04990b23e2e65b285b5f9c1bc996538
S: f873f54c61dbb613df58fa4b9ff8bc3dd48e2388 192.168.106.132:7005
replicates 01e9cd67978b1cad73a40e9a70000a236744cb17
S: daa813e169580417f4410fac86a3d4ab9abda804 192.168.106.132:7006
replicates 72a649017fdd5d4045f9d58df8b231c2d69e6c32
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join.....
>>> Performing Cluster Check (using node 192.168.106.132:7001)
M: 6c388e0cd04990b23e2e65b285b5f9c1bc996538 192.168.106.132:7001
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: b90aa487cf48270df43e79af98807bb5ffabbe34 192.168.106.132:7004
slots: (0 slots) slave
replicates 6c388e0cd04990b23e2e65b285b5f9c1bc996538
M: 72a649017fdd5d4045f9d58df8b231c2d69e6c32 192.168.106.132:7003
slots:10923-16383 (5461 slots) master
1 additional replica(s)
M: 01e9cd67978b1cad73a40e9a70000a236744cb17 192.168.106.132:7002
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: daa813e169580417f4410fac86a3d4ab9abda804 192.168.106.132:7006
slots: (0 slots) slave
replicates 72a649017fdd5d4045f9d58df8b231c2d69e6c32
S: f873f54c61dbb613df58fa4b9ff8bc3dd48e2388 192.168.106.132:7005
slots: (0 slots) slave
replicates 01e9cd67978b1cad73a40e9a70000a236744cb17
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

 

若出現以下報錯信息:./redis-trib.rb:885:in 'sort!' : undefined method '<=>' for:m: symbol (NoMethodError)

或出現其它的一些問題,能夠參考博主另外一篇博客:搭建redis集羣的過程當中遇到的問題

相關文章
相關標籤/搜索