美文网首页
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