其实可以看到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