上一篇搭建了一主二从,并加入了哨兵,任何一个节点挂掉都不影响正常使用,实现了高可用。仍然存在一个问题,一主二从每个节点都存储着全部数据,随着业务庞大,数据量会超过节点容量,即便是redis可以配置清理策略,但也有极限,于是需要搭建redis集群,将数据分别存储到不同的redis上,并且可以横向扩展。
本节搭建三主三从,即三组一主一从。组内是主从关系,可以实现高可用;组间是集群关系,实现分工存储。
开始搭建(2、3步所有redis节点都要做)
1、准备6台redis,都配置上 masterauth <master-password> (不清楚的可参考我的另一篇博客《Redis主从、哨兵》)
2、修改核心配置 vim /usr/local/redis/redis.conf
# 开启集群模式
cluster-enabled yes
# 每一个节点需要有一个配置文件,需要6份。每个节点处于集群的角色都需要告知其他所有节点,彼此知道,这个文件用于存储集群模式下的集群状态等信息,这个文件是由redis自己维护,我们不用管。如果你要重新创建集群,那么把这个文件删了就行
cluster-config-file nodes-201.conf
# 超时时间,超时则认为master宕机,随后主备切换
cluster-node-timeout 5000
# 开启AOF
appendonly yes
3、删除工作空间中rdb和aof文件
4、分别启动6台redis
5、创建集群,在任一节点上执行以下命令,执行完会出现日志,6台的主从关系都会显示。
#####
# 注意1:如果你使用的是redis3.x版本,需要使用redis-trib.rb来构建集群,最新版使用C语言来构建了,这个要注意
# 注意2:以下为新版的redis构建方式
#####
# 创建集群,主节点和从节点比例为1,主从的对应关系会自动分配。
redis-cli --cluster create ip1:port1 ip2:port2 ip3:port3 ip4:port4 ip5:port5 ip6:port6 --cluster-replicas 1
6、检查
redis-cli -a imooc --cluster check 192.168.25.64:6380
7、可自行测试其中一台或几台挂掉是否依然可用。
至此,在保证了高可用的同时,也扩展了容量。