zoukankan      html  css  js  c++  java
  • 三、Redis集群添加节点

    一、添加集群子节点

    1、复制的redis配置文件更改其配置,目录与配置文件和其它节点类似。

     redis_7003.conf、redis_7004.conf 这两个redis配置文件启动生产的redis实例将要作为从,redis_7005.conf将要添加为主 。 

     2、添加从配置以及添加主的配置

    从的配置:

    启动7003、7004两个redis实例

     命令如下:

    //启动7003redis实例
    #./src/redis-server /opt/redis-cluster/redis_7003.conf
    //启动7004redis实例
    #./src/redis-server /opt/redis-cluster/redis_7004.conf
    //进入cd目录执行cli命令目录用于执行 ./redis-cli 命令
    #cd src
    //添加7003作为7000的从
    #./redis-cli -p 7003 cluster meet 127.0.0.1 7000
    //添加7004作为7001的从
    #./redis-cli -p 7004 cluster meet 127.0.0.1 7001
    //查看集群信息
    ./redis-cli -p 7000 cluster nodes

     节点的信息

     发现节点是随机加的

    删除节点

    命令:./redis-trib.rb del-node host:port slave-ID

    #./redis-trib.rb del-node 127.0.0.1:7000 17ad4f3eacb3990c0a95f81d0fed77d5d0365482
    #./redis-trib.rb del-node 127.0.0.1:7001 36c05037f96d5c55663bcccd83ead8e38fcf8fb2

    我们去指定某个主对应的从 

    (将127.0.0.1:7003 节点添加到 127.0.0.1:7000所在集群里)

    ./redis-trib.rb add-node --slave --master-id 955d8972d211bab1477b1efa92a7fd621fad2cd8 127.0.0.1:7003 127.0.0.1:7000

     添加主节点

    #./redis-trib.rb add-node 127.0.0.1:7005 127.0.0.1:7000

     删除主节点

    因为主节点含有槽数,所以,首先要把节点中的哈希槽转移到其他节点中,

    注意:

    1、新加入的主redis 是没有槽数的,只有初始化集群的时候,才会根据主的数据分配好,如新增的主节点,需要手动分配

    执行命令

    //查看节点信息
    #./redis-cli -p 7000 cluster nodes
    //分配槽数
    #./redis-trib.rb reshard 127.0.0.1:7001

    这是我分配好7005主节点的槽数

     下面我将7005在转移到7000内,并将7005删除

    命令如下:

    #./redis-trib.rb del-node 127.0.0.1:7005 6b0e386d6e5b68f61a99e55c39a934b0d4561c4f

     如不清楚主节点槽的话将报错

    添加集群从节点遇到这种错误:

     是因为用了./redis-cli -p 7004 cluster meet 127.0.0.1 7001 然后在添加

     #./redis-trib.rb add-node --slave --master-id 430535468076219892f2d668f7242e1c2fefe73f 127.0.0.1:7003 127.0.0.1:7000

    导致的,如下如图,我又重新试了 确定了一下

    解决方案:

    1、删除appendonlv.aof文件,删除dump.rdb(此文件当使用redis 才会有即set key 123,如果是没有对其操作,默认没有,就不需要删除)

    这里解释一下dump.rdb文件:
    dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。

    2、删除redis_7000.pid、7001、7002、7003、7004、7005所有的pid文件

     3、执行关闭

    pkill redis停止之前的redis进程 【pkill -9 redis】

    //执行以下命令来关闭redis进程
    #pkill -9 redi

     执行关闭redis之后查看关闭成功

     虽然上面集群列表有此redis实例,但是应该执行

    #./redis-trib.rb check 127.0.0.1:7002

    查看redis集群服务




  • 相关阅读:
    从输入url到页面加载完成都发生了什么?
    JS 获取和监听屏幕方向变化(portrait / landscape)
    圣杯布局的几种情况
    闭包的使用 — 点击列表项输出项目索引
    论文笔记:dropout
    论文笔记:蒸馏网络(Distilling the Knowledge in Neural Network)
    ng-深度学习-课程笔记-17: 序列模型和注意力机制(Week3)
    ng-深度学习-课程笔记-16: 自然语言处理与词嵌入(Week2)
    ng-深度学习-课程笔记-15: 循环序列模型(Week1)
    Ubuntu安装dlib后import出现libstdc++.so.6: version `GLIBCXX_3.4.21' not found
  • 原文地址:https://www.cnblogs.com/fger/p/12160210.html
Copyright © 2011-2022 走看看