Redis 3.0 集群

Redis 3.0 提供了集群机制

集群没有中心几点,,主节点之间是两两相连(意味着他们有着频繁的网络IO,所以当集群数量不多时可以使用3.0的集群特性,反之就按需求适当是使用Redis主从+Sentinel或Twemproxy代理)

当Redis集群一启动就会默认启动6个几点,3个为主节点,3个为从节点,当其中一个主节点挂掉了,它下面的从节点自动升级为主节点(类似与加了Sentinel)

图:

 

 

 

Redis 3.0+ 可以更改槽位和指定区间段的槽的数据迁移

 

 

3.0+的安装配置就不说了

创建集群:

要先创建槽位,槽位分配通过redis-trib这个ruby脚本分配,3个主实例,3个从实例

在3.0的源码src目录下执行redis-trib.rb脚本,命令:./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

--replicas 1:每个主节点要有1个从节点,为1的时候,前三个地址是主,后三个为从,为2,后6个为从节点

 

连接集群:

redis-cli -p 7001(端口写哪个都行) -c(表示连接的是集群模式)

 

 

 

 

总结:

1、主节点分槽,命令能做就做,不能做给其他主节点做并提示在另一台服务器上做了(自动转向),全部做不了再返回错误

2、主节点两两通信

3、简单,建个列表,连哪个都可以

4、默认16384槽位,n台服务器平分,槽位上数据可以迁移

5、默认3主3从,一个主挂了,他下面的从会变成主,等旧主重启了后,会变成新主的从

6、集群必须满足拥有16384个槽位才能正常工作,场景:本有3主3从服务器,其中一对主从服务器挂掉了,不满足16384槽位,可以在3.0源码src目录下使用./redis-trib.rb的reshard命令

 

posted @ 2018-03-15 17:32  猴子1  阅读(129)  评论(0编辑  收藏  举报