redis-cluster集羣單機搭建

閒來無事自己做的關於redis-cluster集羣的測試

redis的安裝

下載安裝包(這裏使用的版本是:redis-3.2.9.tar.gz)

cd /home/download

tar -zxvf redis-3.2.9.tar.gz

mv redis-3.2.9 redis

創建所需要的以端口爲區別的文件夾

mkdir cluster 

cd cluster && mkdir 7000 7001 7002 7003 7004 7005

cd /home/download/redis

cp redis.conf /home/download/cluster/7000

修改7000裏面的配置文件

vim /home/download/cluster/7000/redis.conf

修改以下幾項

port 7000

daemonize yes

cluster-enabled yes

cluster-config-file nodes-7000.conf

cluster-node-timeout 5000

appendonly yes

分別複製到其餘的文件夾下面,修改端口號和文件名稱一樣

安裝集羣管理插件

redis-3.2.1.gem 網上下載一個  我這不是最新版本的

yum install ruby rubygems -y

gem install -l redis-3.2.1.gem

分別啓動6個redis

cd /home/download/redis/src

./redis-server /home/download/cluster/7000/redis.conf

./redis-server /home/download/cluster/7001/redis.conf

./redis-server /home/download/cluster/7002/redis.conf

./redis-server /home/download/cluster/7003/redis.conf

./redis-server /home/download/cluster/7004/redis.conf

./redis-server /home/download/cluster/7005/redis.conf

檢查啓動情況

pa-ef | grep redis

root      49131      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7000 [cluster]

root      49136      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7001 [cluster]

root      49140      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7002 [cluster]

root      49257      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7003 [cluster]

root      49261      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7004 [cluster]

root      49265      1  0 Jul29 ?        00:01:03 ./redis-server 127.0.0.1:7005 [cluster]

root      76733  75739  0 20:49 pts/2    00:00:00 grep --color=auto redis-server

創建集羣

./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

(上面的‘1’表示爲主的創建一個slave的)

>>> Creating cluster

>>> Performing hash slots allocation on 6 nodes...

Using 3 masters:

127.0.0.1:7000

127.0.0.1:7001

127.0.0.1:7002

Adding replica 127.0.0.1:7003 to 127.0.0.1:7000

Adding replica 127.0.0.1:7004 to 127.0.0.1:7001

Adding replica 127.0.0.1:7005 to 127.0.0.1:7002

M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000

   slots:0-5460 (5461 slots) master

M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001

   slots:5461-10922 (5462 slots) master

M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002

   slots:10923-16383 (5461 slots) master

S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003

   replicates a08504e2272ddcb9383baf4258bd016d2161d260

S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004

   replicates c5ec423721e193f1abb5926194189068d71f2966

S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005

   replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867

Can I set the above configuration? (type 'yes' to accept): yes

會打印出以上內容,輸入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 127.0.0.1:7000)

M: a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000

   slots:0-5460 (5461 slots) master

   1 additional replica(s)

M: c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001

   slots:5461-10922 (5462 slots) master

   1 additional replica(s)

S: 71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004

   slots: (0 slots) slave

   replicates c5ec423721e193f1abb5926194189068d71f2966

S: a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005

   slots: (0 slots) slave

   replicates e5db2e4845b7869dcbfbbc45bdf6ef22f1187867

M: e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002

   slots:10923-16383 (5461 slots) master

   1 additional replica(s)

S: 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003

   slots: (0 slots) slave

   replicates a08504e2272ddcb9383baf4258bd016d2161d260

[OK] All nodes agree about slots configuration.

>>> Check for open slots...

>>> Check slots coverage...

[OK] All 16384 slots covered.

致此,搭建成功

測試可用redis-cli -c -p 7001

127.0.0.1:7001> set name ceshi

OK

127.0.0.1:7001> get name

"ceshi"

查看主從信息

[root@localhost src]# redis-cli -p 7000 cluster nodes 

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 master - 0 1501473285629 2 connected 5461-10922

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 slave c5ec423721e193f1abb5926194189068d71f2966 0 1501473285120 5 connected

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 myself,master - 0 0 1 connected 0-5460

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473284107 6 connected

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473282077 3 connected 10923-16383

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 slave a08504e2272ddcb9383baf4258bd016d2161d260 0 1501473283091 4 connected

[root@localhost src]# redis-cli -c -p 7005  

127.0.0.1:7005> get name

-> Redirected to slot [5798] located at 127.0.0.1:7001

"ceshi"

127.0.0.1:7001> exit

[root@localhost src]# redis-cli -c -p 7002  

127.0.0.1:7002> get name

-> Redirected to slot [5798] located at 127.0.0.1:7001

"ceshi"

127.0.0.1:7001> exit

[root@localhost src]# 

斷點測試

去掉7000redis

[root@localhost src]# ./redis-cli -c -p 7004

127.0.0.1:7004> get name

"ceshi"

127.0.0.1:7004> 

可以取到值,再次查看狀態信息

[root@localhost src]# ./redis-cli -p 7004 cluster nodes

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501473934812 7 connected

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501473937837 8 connected 0-5460

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501473936828 3 connected 10923-16383

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 master,fail - 1501473837708 1501473836698 1 disconnected

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501473938843 6 connected

再次啓動7000redis

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

[root@localhost src]# ./redis-cli -p 7004 cluster nodes

71518be19ddd2a2ae53fe0f88112897654eb56de 127.0.0.1:7004 myself,master - 0 0 7 connected 5461-10922

c5ec423721e193f1abb5926194189068d71f2966 127.0.0.1:7001 slave 71518be19ddd2a2ae53fe0f88112897654eb56de 0 1501474156543 7 connected

37e0303c6eb605df80c10de82c4bd8d2f85ae80f 127.0.0.1:7003 master - 0 1501474159068 8 connected 0-5460

e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 127.0.0.1:7002 master - 0 1501474156038 3 connected 10923-16383

a08504e2272ddcb9383baf4258bd016d2161d260 127.0.0.1:7000 slave 37e0303c6eb605df80c10de82c4bd8d2f85ae80f 0 1501474157049 8 connected

a46dd45983767cc4e50d60baf99e2a9f304d740f 127.0.0.1:7005 slave e5db2e4845b7869dcbfbbc45bdf6ef22f1187867 0 1501474158057 6 connected

可以看到已經自動成爲slave了



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章