美文网首页
redis集群部署(3主3从)

redis集群部署(3主3从)

作者: Longer_JzL | 来源:发表于2020-09-08 15:54 被阅读0次

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
image.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
image.png

step 6:实现主从

#查询节点信息
redis-cli -p 7000 cluster nodes
image.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 

最后附上最新的集群关系图:

image.png

相关文章

网友评论

      本文标题:redis集群部署(3主3从)

      本文链接:https://www.haomeiwen.com/subject/ymfjektx.html