centos下搭建redis集群

NoSQL Redis CentOS 文本編輯器 科技優家 2017-05-13

必備的工具:

redis-3.0.0.tar

redis-3.0.0.gem (ruby和redis接口)

分析:

首先,集群數需要基數,這裡搭建一個簡單的redis集群(6個redis實例進行集群)。

在一臺服務器上操作,因此僅需要6個不同的端口號即可。分別是:7001、7002、7003、7004、7005、7006。

步驟:

1、上傳redis-3.0.0.tar到服務器(自己指定自己的軟件目錄),解壓redis-3.0.0.tar。

2、安裝c語言環境(安裝centos之後,自帶c語言環境)

yum install gcc-c++

3、進入到redis-3.0.0目錄

make

4、安裝redis到/usr/local/redis目錄

make install PREFIX=/usr/local/redis

5、查看是否安裝成功(出現bin目錄即可)

6、前端啟動redis(進入上圖的bin目錄)

./redis-server(開啟)

./redis-cli shutdown

centos下搭建redis集群

7、後端啟動

需要將redis解壓之後的源碼包中(redis-3.0.0目錄下)的redis.conf文件拷貝到bin目錄下

修改redis.conf文件,將daemonize改為yes先要使用vim redis.conf

centos下搭建redis集群

使用命令後端啟動redis

bin目錄下執行 ./redis-server redis.conf

查看是否啟動成功

關閉後端啟動的方式:

./redis-cli shutdown

以上是單獨的redis安裝,接下來搭建集群!

安裝ruby

yum install ruby

yum install rubygems

將以下文件上傳到linux系統

redis-3.0.0.gem (ruby和redis接口)

進入該目錄執行:gem install redis-3.0.0.gem

將redis-3.0.0包下src目錄中的以下文件拷貝到/usr/local/redis/redis-cluster/

前提:先新建一個redis-cluster目錄

搭建集群最少也得需要3臺主機,如果每臺主機再配置一臺從機的話,則最少需要6臺機器。

端口設計如下:7001-7006

第一步:複製出一個7001機器

進入/usr/local/redis/目錄執行 cp bin ./redis-cluster/7001 –r

第二步:如果存在持久化文件,則刪除

rm -rf appendonly.aof dump.rdb

第三步:設置集群參數

第四步:修改端口

第五步:複製出7002-7006機器

給出我桌面系統下的目錄結構:

centos下搭建redis集群

接下來設置一鍵啟動全部redis或者關閉redis群:

首先,新建一個文件,可以用vim打開一個不存在的文件,然後保存就存在了。(上圖的start-all.sh和shutdow-all.sh就是我新建的)

start-all.sh:

cd 7001
./redis-server redis.conf
cd ..
cd 7002
./redis-server redis.conf
cd ..
cd 7003
./redis-server redis.conf
cd ..
cd 7004
./redis-server redis.conf
cd ..
cd 7005
./redis-server redis.conf
cd ..
cd 7006
./redis-server redis.conf
cd ..

shutdow-all.sh:

cd 7001
./redis-cli -p 7001 shutdown
cd ..
cd 7002
./redis-cli -p 7002 shutdown
cd ..
cd 7003
./redis-cli -p 7003 shutdown
cd ..
cd 7004
./redis-cli -p 7004 shutdown
cd ..
cd 7005
./redis-cli -p 7005 shutdown
cd ..
cd 7006
./redis-cli -p 7006 shutdown
cd ..

接下來修改那兩個文件權限,設置其為可啟動的腳本文件

chmod u+x start-all.sh

chmod u+x shutdown-all.sh

接下來用ruby連接這幾個集群,進行管理

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

出現:

Connecting to node 192.168.242.137:7001: OK
Connecting to node 192.168.242.137:7002: OK
Connecting to node 192.168.242.137:7003: OK
Connecting to node 192.168.242.137:7004: OK
Connecting to node 192.168.242.137:7005: OK
Connecting to node 192.168.242.137:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.242.137:7001
192.168.242.137:7002
192.168.242.137:7003
Adding replica 192.168.242.137:7004 to 192.168.242.137:7001
Adding replica 192.168.242.137:7005 to 192.168.242.137:7002
Adding replica 192.168.242.137:7006 to 192.168.242.137:7003
M: 8240cd0fe6d6f842faa42b0174fe7c5ddcf7ae24 192.168.242.137:7001
   slots:0-5460 (5461 slots) master
M: 4f52a974f64343fd9f1ee0388490b3c0647a4db7 192.168.242.137:7002
   slots:5461-10922 (5462 slots) master
M: cb7c5def8f61df2016b38972396a8d1f349208c2 192.168.242.137:7003
   slots:10923-16383 (5461 slots) master
S: 66adf006fed43b3b5e499ce2ff1949a756504a16 192.168.242.137:7004
   replicates 8240cd0fe6d6f842faa42b0174fe7c5ddcf7ae24
S: cbb0c9bc4b27dd85511a7ef2d01bec90e692793b 192.168.242.137:7005
   replicates 4f52a974f64343fd9f1ee0388490b3c0647a4db7
S: a908736eadd1cd06e86fdff8b2749a6f46b38c00 192.168.242.137:7006
   replicates cb7c5def8f61df2016b38972396a8d1f349208c2
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.242.137:7001)
M: 8240cd0fe6d6f842faa42b0174fe7c5ddcf7ae24 192.168.242.137:7001
   slots:0-5460 (5461 slots) master
M: 4f52a974f64343fd9f1ee0388490b3c0647a4db7 192.168.242.137:7002
   slots:5461-10922 (5462 slots) master
M: cb7c5def8f61df2016b38972396a8d1f349208c2 192.168.242.137:7003
   slots:10923-16383 (5461 slots) master
M: 66adf006fed43b3b5e499ce2ff1949a756504a16 192.168.242.137:7004
   slots: (0 slots) master
   replicates 8240cd0fe6d6f842faa42b0174fe7c5ddcf7ae24
M: cbb0c9bc4b27dd85511a7ef2d01bec90e692793b 192.168.242.137:7005
   slots: (0 slots) master
   replicates 4f52a974f64343fd9f1ee0388490b3c0647a4db7
M: a908736eadd1cd06e86fdff8b2749a6f46b38c00 192.168.242.137:7006
   slots: (0 slots) master
   replicates cb7c5def8f61df2016b38972396a8d1f349208c2
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

則代表成功了!

測試一下,進入7001目錄執行:./redis-cli -h 192.168.242.137 -p 7001 –c

centos下搭建redis集群

相關推薦

推薦中...