美文网首页
Redis集群搭建

Redis集群搭建

作者: 孤尘F | 来源:发表于2018-09-24 17:13 被阅读0次

    1.搭建步骤

    wiki:

    1:http://www.cnblogs.com/mafly/p/redis_cluster.html
    2:https://blog.csdn.net/plei_yue/article/details/78791440
    

    1、更侧重与安装,2、更详细的描述了扩容、新增、删除、节点(主、从)
    1、2均为Linux版本,Mac上唯一的区别在于,安装Rubyrubygems,使用HomeBrew来进行安装即可,
    另外可以参考如下文章:

    Mac OS X
    10.5和更高版本的Mac OS X已经安装Ruby和RubyGems。
    如果您使用的是早期版本的Mac OS,请下载并安装最新版本的 Ruby 和RubyGems.
    
    https://blog.csdn.net/happyteafriends/article/details/8225611
    

    2.redis.conf 集群配置

    主要配置以下几个参数:

    port 9001(每个节点的端口号)
    daemonize yes
    bind 192.168.119.131(绑定当前机器 IP)
    dir /usr/local/redis-cluster/9001/data/(数据文件存放位置)
    pidfile /var/run/redis_9001.pid(pid 9001和port要对应)
    cluster-enabled yes(启动集群模式)
    cluster-config-file nodes9001.conf(9001和port要对应)
    cluster-node-timeout 15000
    appendonly yes
    cluster-require-full-coverage no    #默认是yes,只要有结点宕机导致16384个槽没全被覆盖,整个集群就全部停止服务,所以一定要改为no
    

    3.踩的几个坑

    3.1 redis cluster 集群重新分片故障处理

    由于Mac OS自带的rubygems版本较高,重新分片时报错

    [WARNING] Node 10.21.10.120:7002 has slots in importing state (3398).
    [WARNING] Node 10.21.14.251:7001 has slots in migrating state (3398).
    [WARNING] The following slots are open: 3398
    Check slots coverage...
    [OK] All 16384 slots covered.
    [ERR] Calling MIGRATE ERR Syntax error, try CLIENT (LIST | KILL | GETNAME | SETNAME | PAUSE | REPLY)
    

    解决方案:

    1、ruby gem安装的redis库,版本不能使用最新的4.0,否则redis-trib.rb reshard 127.0.0.1:7000 重新分片时会报语法错误。
    
        1、卸载最新redis库,gem uninstall redis
    
        2、安装3.x版本,gem install redis -v 3.3.5 测试3.2.1到3.3.5都可以,4.x以上的分片报错
    2、使用fix来进行修复,具体命令如下:
        ./redis-trib.rb fix 10.21.10.120:7000
    

    参考wiki:

    https://my.oschina.net/juluking/blog/1606222
    http://blog.51cto.com/hsbxxl/1978491
    

    4.redis集群重启

    参见文档:

    https://blog.csdn.net/jing956899449/article/details/53611838
    

    相关文章

      网友评论

          本文标题:Redis集群搭建

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