集群搭建
-
下载
redis5.0
以上版本,下载链接为:https://download.redis.io/releases/redis-5.0.14.tar.gz解压缩安装
redis
tar -zxf redis-5.0.4.tar.gz cd redis-5.0.4 make && make install
安装成功后查看一下命令是否可执行:
redis-server --help
-
创建文件夹以及配置文件,集群最少需要
3
个主服务,这里搭建8
个,4
主4
从,其中2
个用来做扩容缩容操作
redis.conf
配置主要如下,每个文件端口不一样port 7001 bind 172.30.1.114 daemonize yes logfile "/app/redis/7001/redis-7001.log" dir ./ masterauth 123456 requirepass 123456 appendonly yes appendfilename appendonly-7001.aof save 900 1 dbfilename dump-7001.rdb # 打开集群模式 cluster-enabled yes #设定节点配置文件名 cluster-config-file nodes-7001.conf #设定节点失联时间,超过该时间(毫秒),集群自动进行主从切换 cluster-node-timeout 15000
-
依次启动每一个服务:
redis-server ./7001/redis.conf
-
启动完成后创建集群,
cluster-replicas
表示副本数量为1redis-cli --cluster create --cluster-replicas 1 172.30.1.114:7001 172.30.1.114:7002 172.30.1.114:7003 172.30.1.114:7004 172.30.1.114:7005 172.30.1.114:7006 -a 123456
-
集群创建后进入其中一个服务查看状态:
redis-cli -c -p 7001 -h 172.30.1.114 -a 123456 cluster nodes
扩容
1. 添加进集群
上面集群启动了6
个实例,接着启动7007
、7008
两个实例,添加进集群
执行以下命令把7007、7008
添加进集群
redis-cli --cluster add-node 172.30.1.114:7007 172.30.1.114:7001 -a 123456
redis-cli --cluster add-node 172.30.1.114:7008 172.30.1.114:7001 -a 123456
重新查看集群结果如下
2. 槽位的迁移,从节点设置
重新分配槽位到7007节点
redis-cli --cluster reshard 172.30.1.114:7001 -a 123456
输入yes
迁移后在查看下集群情况,7001的2000个槽位迁移到了
7007`节点了
然后把7008
设置成7007
的从节点
redis-cli -c -p 7008 -h 172.30.1.114 -a 123456
cluster replicate 7c62bffb94bc7dd6db4cfd898a6607ef7a17be66
集群扩充成功了
缩容
- 先迁移槽位
redis-cli --cluster reshard 172.30.1.114:7001 -a 123456
- 删除节点以及从节点
redis-cli --cluster del-node 172.30.1.114:7007 7c62bffb94bc7dd6db4cfd898a6607ef7a17be66 -a 123456
缩容成功