step 1:安装redis(略)
step 2:创建目录 + 配置文件
步骤:
- 修改redis配置文件
- 在自定义的目录创建redisCluster目录
- 在redisCluster目录下创建7000,7001,7002,7003,7004,7005目录
- 将redis目录复制到7000,7001,7002,7003,7004,7005五个目录下
- 修改各个redis配置文件的端口
1)修改redis配置文件
#进入到redis的安装目录
cd /Users/longer/developtools/redis-6.0.5
#修改配置文件
vi redis.conf
修改指定的配置:
#端口号,每个目录都不同
port 7000
#开启集群模式
cluster-enabled yes
#节点超时实际,单位毫秒
cluster-node-timeout 5000
#集群内部配置文件(默认为 nodes-6379.conf)
cluster-config-file nodes.conf
#启动 AOF
appendonly yes
#默认是no,改成 yes,意思是是否要后台启动。
daemonize yes
2)创建目录
- 在自定义的目录创建redisCluster目录
- 在redisCluster目录下创建7000,7001,7002,7003,7004,7005目录
- 将redis目录复制到7000,7001,7002,7003,7004,7005五个目录下
#在自定义的目录创建redisCluster目录
mkdir redisCluster
cd redisCluster/
mkdir 7000 7001 7002 7003 7004 7005
#将redis目录复制到7000 7001 7002 7003 7004 7005五个目录下
cp -r /Users/longer/developtools/redis-6.0.5 /Users/longer/developtools/redisCluster/7000
#省略其他复制操作
3)修改各个redis配置文件的端口
到指定目录下修改redis.conf,将端口号修改成各自端口
step 3:启动各个redis服务
分别进入到各个端口目录下的redis执行redis-server redis.conf命令
cd /Users/longer/developtools/redisCluster/7001/redis-6.0.5
redis-server redis.conf
启动完各个redis服务后,执行ps -ef | grep redis命令查看redis服务进程
ps -ef | grep redis
![](https://img.haomeiwen.com/i14840520/4c0a2cdf6ca47fe9.png)
step 4:关联各个redis服务
进入7000节点的redis目录中执行命令,进入控制台
redis-cli -p 7000
依次执行下面的命令
127.0.0.1:7000> cluster meet 127.0.0.1 7001
OK
127.0.0.1:7000> cluster meet 127.0.0.1 7002
OK
127.0.0.1:7000> cluster meet 127.0.0.1 7003
OK
127.0.0.1:7000> cluster meet 127.0.0.1 7004
OK
127.0.0.1:7000> cluster meet 127.0.0.1 7005
OK
step 5:分配slot(卡槽)
redis Cluster 是由 16384 个 slot 组成的,那么我们需要将这些槽分散到这其中 3 个节点里(3 主 3 从)。
进入7002的redis目录中执行命令
redis-cli -p 7000 cluster addslots {0..5461}
OK
redis-cli -p 7001 cluster addslots {5462..10922}
OK
redis-cli -p 7002 cluster addslots {10923..16383}
OK
通过以下命令验证
redis-cli -p 7000 cluster nodes
![](https://img.haomeiwen.com/i14840520/35174191c1763e0d.png)
step 6:实现主从
#查询节点信息
redis-cli -p 7000 cluster nodes
![](https://img.haomeiwen.com/i14840520/a1146cd2d230eac3.png)
说明:第一列为对应进程节点的NodeId;第二列为主从说明(master=主,slave=从)
如果你还没有做主从的话,实际上,第二列显示的都是master,也就每个节点都是主节点。
所以需要执行以下命令:
redis-cli -p 7003 cluster replicate db920bf07e383c0eaf75b1daa7c64ffeb5882515(7000的NodeID)
OK
redis-cli -p 7004 cluster replicate 2f05213d86c31af487bebf504a0b45c908d47c25(7001的NodeID)
OK
redis-cli -p 7005 cluster replicate fe2fa7dc1012c6cf493086ac651b6d8b405e8a5d(7002的NodeID)
OK
step 7:解除集群关系,重新设置主从关系
细心的人其实已经发现了,在上面的图中,其实能看出,我的主从关系搞错了,把7000节点给设置成了从节点,那么想重新设置主从关系怎么办呢?
解决方案:
- 关闭所有redis服务
- 到各个节点目录下,删除nodes.conf、dump.rdb和appendonly.aof文件
- 重新从step 3开始走流程
longer@MacBook-Pro redis-6.0.5 % kill -9 进程号
longer@MacBook-Pro redis-6.0.5 % rm -rf nodes.conf
longer@MacBook-Pro redis-6.0.5 % rm -rf dump.rdb
longer@MacBook-Pro redis-6.0.5 % rm -rf appendonly.aof
最后附上最新的集群关系图:
![](https://img.haomeiwen.com/i14840520/1ac9f00c96994222.png)
网友评论