第三部分:多机数据库的实现:集群

百般思念 提交于 2019-12-20 15:01:45

Ubuntu16.04 配置redis cluster环境(自己测试用)
参考:必看
redis cluster相关命令

  1. redis 6379节点的配置文件(其他节点的配置文件对应端口,文件名改一下就行)

    pidfile "/home/xiaocai/software/redis/logs/redis-6379.pid"
    port 6379
    tcp-backlog 511
    bind 0.0.0.0
    timeout 0
    tcp-keepalive 60
    loglevel notice
    dbfilename "dump-6379.rdb"
    cluster-config-file nodes-6379.conf
    cluster-enabled yes
    
  2. 启动redis节点

    sudo ./redis-server conf/redis-6379.conf
    sudo ./redis-server conf/redis-6380.conf
    sudo ./redis-server conf/redis-6381.conf
    
  3. 添加redis节点 cluster meet ip port 查看redis 节点 cluster nodes

    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6379
    127.0.0.1:6379> ping
    PONG
    127.0.0.1:6379> cluster meet 127.0.0.1 6380
    OK
    127.0.0.1:6379> cluster nodes
    d9637573e904a5c6453e8358873ce3ce07a3160d 127.0.0.1:6380@16380 master - 0 1576803897321 1 connected
    fdef4d5b42fc0e40f0c9a374f78bfa0c8eb67926 127.0.0.1:6379@16379 myself,master - 0 0 0 connected
    
    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6380
    127.0.0.1:6380> cluster nodes
    d9637573e904a5c6453e8358873ce3ce07a3160d 127.0.0.1:6380@16380 myself,master - 0 0 1 connected
    fdef4d5b42fc0e40f0c9a374f78bfa0c8eb67926 127.0.0.1:6379@16379 master - 0 1576803999852 0 connected
    127.0.0.1:6380> 
    127.0.0.1:6380> 
    127.0.0.1:6380> cluster meet 127.0.0.1 6381
    OK
    127.0.0.1:6380> cluster nodes
    6dcb562bcd93258c8b946adf595b11db4b9c1262 127.0.0.1:6381@16381 master - 0 1576804047235 2 connected
    d9637573e904a5c6453e8358873ce3ce07a3160d 127.0.0.1:6380@16380 myself,master - 0 0 1 connected
    fdef4d5b42fc0e40f0c9a374f78bfa0c8eb67926 127.0.0.1:6379@16379 master - 0 1576804046228 0 connected
    127.0.0.1:6380> 
    
  4. 槽指派cluster addslots slot …
    查看当前集群状态,可见未上线cluster_state:fail

    127.0.0.1:6380> cluster info
    cluster_state:fail
    cluster_slots_assigned:0
    cluster_slots_ok:0
    cluster_slots_pfail:0
    cluster_slots_fail:0
    cluster_known_nodes:3
    cluster_size:0
    cluster_current_epoch:2
    cluster_my_epoch:1
    cluster_stats_messages_ping_sent:325
    cluster_stats_messages_pong_sent:327
    cluster_stats_messages_meet_sent:1
    cluster_stats_messages_sent:653
    cluster_stats_messages_ping_received:326
    cluster_stats_messages_pong_received:326
    cluster_stats_messages_meet_received:1
    cluster_stats_messages_received:653
    

    参考:添加槽指派,书上写的不对,试过了不行,网上查的资料
    redis-cli -h 服务器IP -p 端口号 cluster addslots {0…5460}

    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6379 cluster addslots {0..5000}
    OK
    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6379
    127.0.0.1:6379> cluster nodes
    6dcb562bcd93258c8b946adf595b11db4b9c1262 127.0.0.1:6381@16381 master - 0 1576808600699 2 connected
    fdef4d5b42fc0e40f0c9a374f78bfa0c8eb67926 127.0.0.1:6379@16379 myself,master - 0 1576808601000 0 connected 0-5000
    d9637573e904a5c6453e8358873ce3ce07a3160d 127.0.0.1:6380@16380 master - 0 1576808601710 1 connected
    127.0.0.1:6379> quit
    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6380 cluster addslots {5001..10000}
    OK
    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6380 cluster addslots {10000..16383}
    (error) ERR Slot 10000 is already busy
    xiaocai@ubuntu:~/software/redis$ ./redis-cli -p 6380 cluster addslots {10001..16383}
    OK
    

    再次查看cluster 状态,显示已上线cluster_state:ok

    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:2
    cluster_current_epoch:2
    cluster_my_epoch:0
    cluster_stats_messages_ping_sent:1761
    cluster_stats_messages_pong_sent:1452
    cluster_stats_messages_sent:3213
    cluster_stats_messages_ping_received:1452
    cluster_stats_messages_pong_received:1526
    cluster_stats_messages_received:2978
    
  5. 以集群模式的redis-cli连接集群

    xiaocai@ubuntu:~/software/redis$ ./redis-cli -c -p 6379
    127.0.0.1:6379> get x
    -> Redirected to slot [16287] located at 127.0.0.1:6380
    "a" 
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!