其实可以看到redis-cluster也好,codis也好其实最根本的原理几乎一致,都有slot槽的概念,数据存储在这些hash槽中


各个缺点

不同点codis中有proxy,每个group中的主从切换不是自动的,对zookeeper的依赖过强

rediscluster集群要求的过于严格,同时挂掉2个分片集群不可用,同时挂掉2个group中的master集群不可用



yum install ruby

gem install redis



1.创建redis集群

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

2.查看redis cluster每个片的hash槽范围,以及主从的端口

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