其實能夠看到redis-cluster也好,codis也好其實最根本的原理幾乎一致,都有slot槽的概念,數據存儲在這些hash槽中node
各個缺點redis
不一樣點codis中有proxy,每一個group中的主從切換不是自動的,對zookeeper的依賴過強ruby
rediscluster集羣要求的過於嚴格,同時掛掉2個分片集羣不可用,同時掛掉2個group中的master集羣不可用ide
yum install ruby3d
gem install redishash
1.建立redis集羣it
./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:7005ast
2.查看redis cluster每一個片的hash槽範圍,以及主從的端口class
cluster slots集羣
3.cluster nodes
4.cluster info
5.添加節點
./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000 把7006添加到redis cluster集羣中
6.把7006變成主
(1)./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
(2)redis-trib.rb reshard 127.0.0.1:7000
選擇要遷移多少hash槽
選擇要接受這些hash槽的節點id
選擇從哪些節點遷移這些hash槽
7.把7007變成從
(1)./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
(2)./redis-cli -c -p 7007 cluster replicate 8aec0832efd55a147b074384edee65a650f770d8(主節點id)
8.刪除節點
./redis-trib.rb del-node 127.0.0.1:7000 dfdbf87d0fb7db46922e2a0301eb3db9a9d02cc5