1. 程式人生 > >redis的cluster叢集

redis的cluster叢集

此內容在之前文章的基礎之上。 前置內容: master:192.168.126.128:6379 slave:192.168.126.131:6389 master:192.168.126.128:6380 slave:192.168.126.131:690 master:192.168.126.128:6381 slave:192.168.126.131:6391 1.cd /usr/local/redis 2.mkdir cluster cluster/conf cluster/data 3.cp redis.conf cluster/conf/redis.conf 4.vim cluster/conf/redis.conf

5.配置,以6379為例:

bind 192.168.126.128
port 6379
cluster-enabled yes              
cluster-node-timeout 15000       
cluster-config-file  /usr/local/redis/cluster/data/nodes-6379.conf

6.下載 ruby-2.3.1.tar.gz 和 redis-3.3.0.gem(見git工程) 7.tar -zxvf ruby-2.3.1.tar.gz 8. cd ruby-2.3.1 9. ./configure -prefix=/usr/local/ruby 10. make && make install //過程會有點慢,大概5-10分鐘 11. 然後gem install -l redis-3.3.0.gem //若沒有gem需要安裝yum install gem -y 12, 依次啟動6個節點:./redis-server cluster/conf/redis.conf 13.如果之前redis有資料存在,flushall清空;(坑:不需要cluster meet …) 14.執行./redis-trib.rb create --replicas

./redis-trib.rb create --replicas 1 192.168.126.128:6379 192.168.126.129:6380 192.168.126.130:6381 192.168.126.131:6389 192.168.126.132:6390 192.168.126.133:6391

在這裡插入圖片描述 表示成功。 15.登入其中一個:

./redis-cli -h 192.168.126.128 -p 6379 -c

注意:記得加-c

CLUSTER nodes

在這裡插入圖片描述 測試: 1.set,get值測試 在這裡插入圖片描述 登入6381:

./redis-cli -h 192.168.126.130 -p 6381 -c

在這裡插入圖片描述 說明:鍵name通過hash發現槽是在6380中,然後6379就redirect到了6380並把鍵儲存,然後我再登入6381嘗試get name發現也是重定向到6380並拿到值。 2.增加叢集測試:為了方便不增加虛擬機器了,直接在192.168.126.128上再起倆個redis 前置說明:master:192.168.126.128:6382 slave:192.168.126.128:6392

cd usr/local/redis/cluster/conf
cp redis.conf redis6382.conf
cp redis.conf redis6392.conf

修改conf中的port和nodes-6382.conf。 啟動:

./redis-server cluster/conf/redis6382.conf
./redis-server cluster/conf/redis6392.conf
./redis-trib.rb add-node 192.168.126.128:6382 192.168.126.128:6379

6382為新的主節點,6379為原來的主節點。

cat /usr/local/redis/cluster/data/nodes-6382.conf

發現主節點增加成功。

./redis-trib.rb add-node --slave --master-id  b378feb2eb7e43e1b391fa08778d8ec269ea81b2 192.168.126.128:6392 192.168.126.128:6379  

–slave,表示新增的是從節點 –master-id 03ccad2ba5dd1e062464bc7590400441fafb63f2,主節點的node id,在這裡是前面新新增的6378的node id 192.168.126.128:6392,新從節點 192.168.126.128:6379叢集原存在的舊節點 重新分配solt

redis-trib.rb reshard 192.168.126.128:6382

日誌中需要自己設定的內容: How many slots do you want to move (from 1 to 16384)? 1000 //設定slot數1000 What is the receiving node ID? 464bc7590400441fafb63f2 //新節點node id Source node #1:all //表示全部節點重新洗牌

cat /usr/local/redis/cluster/data/nodes-6382.conf

在這裡插入圖片描述 表示成功。 在這裡插入圖片描述 設定值,redirected也可以。