虽然做了主从复制,但单个master的容量受机器内存限制,往往要做集群来提升容量。
redis 5.0之前的版本通过执行redis-trib.rb来创建集群,而redis-trib.rb是使用ruby语言写的脚本,需要配置ruby环境,此外还需要安装redis.gem来管理集群。
18年11月redis 5.0发布,使用redis-cli代替redis-trib.rb来创建集群,当然redis-trib.rb现在还能用(向下兼容),在redis解压目录的src下还有这个文件,但后续会被取消掉,不建议再使用。
此处使用redis 5.0来创建集群。
集群设置
1、编辑已安装的redis的redis.conf,设置允许集群
参与集群的所有节点都不能是slave,所以如果配置了replicaof,需将其注释掉。
参与集群的节点的数据库必须要是空的,所以如果该节点有.rdb、.aof等数据库文件,需将其删除。
如果集群失败,后续尝试时要先删除之前的数据库(.rdb、.aof)。
2、在/usr/local下新建目录redis-cluster,把已安装的redis复制6份,放到redis-cluster下,依次重命名为redis1、redis2.....修改端口号,避免端口冲突
创建集群至少要3个master,每个master至少要有一个replica(副本,即slave),这是官方规定的。
所以至少要6个节点,这6个节点都不能设置replicaof,哪些节点作为master、哪些节点作为slave,由集群自动分配,不能由我们手动设置。
如果在配置文件中设置了文件保存路径,需要看下各个redis设置的路径有没有冲突,主要有2处:
- logfile redis的日志文件的保存位置
- /redis/data 数据库文件的保存位置
3、redis-cluster下新建脚本start-all.sh,用来启动6个redis-server
cd /usr/local/redis-