redis集群

作者: 中_中_ | 来源:发表于2018-10-23 22:45 被阅读1次

    redis集群配置参数:
    cluster-enabled :yes/no。是否启用redis集群支持,默认作为独立的redis实例启动。
    cluster-config-file:filename。不可编辑文件,redis用来在持久化集群配置信息以便在每次启动都能读取。文件中列出集群当中所有的节点,状态,持久化变量。由于某些消息接收,通常会将此文件重写并刷新到磁盘上。
    cluster-node-timeout:milliseconds。节点连接超时时间。
    cluster-slave-validity-factory:factor。如果设置为0,slave总会故障转移到master上,不管master和slave之间还有多少连接。如果设置为正数,会根据超时间和该值相乘计算最长断开时间。例如超时时间设置为5,factory设置为10,则最长断开时间九尾50秒,超过50秒后就不会再尝试故障转移到该台master。
    cluster-migration-barrier:count。master可以连接的最小slave。
    cluster-require-full-coverage:yes/no。默认值为yes,如果一些key空间一直都没被任何节点覆盖的时候集群停止接受写入请求。
    最小化的redis集群配置文件如下:

    port 7000
    cluster-enabled yes
    cluster-config-file nodes.conf
    cluster-node-timeout 5000
    appendonly yes
    

    测试建立一个redis 集群,共6个redis实例,3个作为master,3个作为slave。
    在redis目录下创建6个目录,以端口号创建为目录名称,作为redis实例所在目录。在redis每个redis中修改redis.conf配置文件,修改如上配置信息。使用如下命令创建redis集群,测试服务器的地址为192.168.152.133

    ./redis-trib.rb create --replicas 1 192.168.152.133:7000 192.168.152.133:7001 192.168.152.133:7002 192.168.152.133:7003 192.168.152.133:7004 192.168.152.133:7005
    

    执行过程中肯定会出现异常情况,需要安装ruby依赖。使用源码的方式安装,从https://www.ruby-lang.org/en/downloads/该链接中下载对应版本的安装包,上传到制定目录。

    //解压文件
    #tar -zxvf  ruby-2.5.3.tar.gz
    #cd ruby-2.5.3 
    #./configure 
    #make 
    #make install
    

    默认情况下安装在/usr/local/lib/下,为了能够在path中找到,徐将ruby添加到path当中。完成后安装gem redis依赖,安装之前需安装zlib-dev依赖

    #yum install zlib-devel
    

    安装完成后进入 /usr/bin/ruby/ruby-2.5.3/ext/zlib执行如下命令:

    #ruby ./extconf.rb
    #make 
    #make intall
    

    执行过程中如果出现:make: *** No rule to make target /include/ruby.h', needed byzlib.o'. Stop。则按照如下方法操作:

    vi  /usr/bin/ruby/ruby-2.5.3/ext/zlib/Makefile
    //替换如下内容
    #zlib.o: $(top_srcdir)/include/ruby.h
    zlib.o: ../../include/ruby.h
    

    最后执行gem install redis完成安装。在创建集群的时候不能使用域名或则hostname,需使用ip地址。
    集群创建完成后使用命令检查节点状态:

    ./redis-trib.rb check ip:port
    

    如果检查结果不是OK,可以使用命令进行修复

    ./redis-trib.rb fix ip:port
    
    添加slave节点:

    1,使用add-node子命令添加一个节点

    ./redis-trib.rb add-node new_node_ip:port master_ip:port
    

    2,连接新节点

    ./redis-trib.rb -h ip -p port
    

    3,创建复制

    cluster repliate master_node_id
    
    删除slave节点
    ./redis-trib.rb del-node ip:port "node_id"
    

    相关文章

      网友评论

        本文标题:redis集群

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