美文网首页
单机(centos7)搭建redis集群

单机(centos7)搭建redis集群

作者: 一梦三四年lyp | 来源:发表于2019-07-20 16:24 被阅读0次

    1,安装好一个redis实例
    2,设置redis.conf文件

      比如你要搭建两个redis实例,那么这时候将redis.conf复制两份出来
      cp redis.conf redis-9001.conf
      cp redis.conf redis-9002.conf
      并且修改redis-9001.conf和redis-9002.conf两个文件对应的端口号
      port 6380  // 修改对应的9001或9002端口
      daemonize yes
     cluster-enabled yes
     cluster-config-file nodes_6380.conf // 修改成对应的nodes_9001.conf/nodes_9002.conf
    

    3,测试新增的9001和9002端口是否可用

       执行命令:
       ./redis-cli -c -p 9002
       127.0.0.1:9002> ok  //则创建成功
    

    4,利用cluster meet命令,与9001、9002建立链接。

        127.0.0.1:6379> cluster meet 127.0.0.1 9001
        ok
        127.0.0.1:6379> cluster meet 127.0.0.1 9002
        ok
    

    5,cluster nodes 检查链接情况,以下示例为创建成功

        127.0.0.1:6379> cluster nodes
        2d993bfb6d1d296021f467772b3a039982f0e81b 127.0.0.1:9001 master - 0     1563609909512 1 connected 5001-10000
        6a6a61f84bf0f47dd6b4ac5d6fe44e6fd41549df 127.0.0.1:9002 master - 0     1563609910514 2 connected 10001-16383
        e9b992990ab694b602d38cca25b7fa97eab601e9 127.0.0.1:6379 myself,master - 0 0 0 connected 0-5000
    

    6,cluster info 检查redis集群是否启动

      127.0.0.1:6379> cluster info
      cluster_state:fail  //代表还没有启用
      cluster_slots_assigned:0
      cluster_slots_ok:0
      cluster_slots_pfail:0
      cluster_slots_fail:0
      cluster_known_nodes:1
      cluster_size:0
      cluster_current_epoch:0
      cluster_my_epoch:0
      cluster_stats_messages_sent:449
      cluster_stats_messages_received:0
    

    7,分配槽点

        上面state为fail是因为我们还未给节点分配槽位,官方规定只有16384个槽位全部分配完集群才能正常工作,节点才能接受请求,state状态才会为ok。
        
        我们刚刚是三个节点,16384个槽位全部分配到这个槽位里即可,例如:
        redis-cli -c -p 6379 cluster addslots {0..5000}
        redis-cli -c -p 9001 cluster addslots {5001..10000}
        redis-cli -c -p 9002 cluster addslots {10001..16383}
    
        继续用cluster info 命令查看
        127.0.0.1:6379> cluster info
        cluster_state:ok
        cluster_slots_assigned:16384
        cluster_slots_ok:16384
        cluster_slots_pfail:0
        cluster_slots_fail:0
        cluster_known_nodes:3
        cluster_size:3
        cluster_current_epoch:2
        cluster_my_epoch:0
        cluster_stats_messages_sent:6433
        cluster_stats_messages_received:5984
        127.0.0.1:6379> 
        
        显示我们分配成功,并且state状态也是ok,这时我们就可以利用我们的集群啦
    

    8,测试

      ./redis-cli -c -p 6379
      127.0.0.1:6379> set q 1
      -> Redirected to slot [11958] located at 127.0.0.1:9002
      OK
      127.0.0.1:9002> get q
      "1"
      127.0.0.1:9002> 
      可以看到,redis集群会自动计算key落在那个槽位,然后自动跳到目标节点去执行命令。
    

    9,利用cluster keyslot 可以查看key属于那个槽位。

      127.0.0.1:9002> cluster keyslot q
      (integer) 11958
    
      11958槽位是位于我们的9002节点。
    

    注意:当创建集群的时候需要把节点的key全部清空(否则后面分配槽位的时候会提示该槽位已经给占用导致分配不进去)否则会报错可以用以下命令清空:

          执行flushall、flushdb、cluster reset指令:
    

    相关文章

      网友评论

          本文标题:单机(centos7)搭建redis集群

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