Ubuntu16.04 配置redis cluster环境(自己测试用)
参考:必看
redis cluster相关命令
-
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
-
启动redis节点
sudo ./redis-server conf/redis-6379.conf sudo ./redis-server conf/redis-6380.conf sudo ./redis-server conf/redis-6381.conf
-
添加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>
-
槽指派cluster addslots slot …
查看当前集群状态,可见未上线cluster_state:fail127.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
-
以集群模式的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"
来源:CSDN
作者:crazy_xiaocai
链接:https://blog.csdn.net/weixin_42752585/article/details/103626580