redis3.0踩坑经历

1.搭建集群至少需要3主3从6台服务器或进程,否则你会遇到这错误

./redis-trib.rb create --replicas 1 192.168.22.43:6380 192.168.22.54:6379

./redis-trib.rb:1573: warning: key "threshold" is duplicated and overwritten on line 1573
>>> Creating cluster
*** ERROR: Invalid configuration for cluster creation.
*** Redis Cluster requires at least 3 master nodes.
*** This is not possible with 2 nodes and 1 replicas per node.
*** At least 6 nodes are required.

如果你就想只搭建几台主服务器,那么请使用下边的方式(可以在其中一台服务器cli下MEET其他服务器即可,各服务器可以相互连接)

127.0.0.1:6383> CLUSTER MEET 192.168.22.43 6384
OK
这种方式可以由你自己定义集群有多少台服务器,但是必须指定插槽,且必须分配完毕16384个槽位才可以正常工作,否则你使用CLUSTER INFO会看到

127.0.0.1:6383> 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:0
cluster_stats_messages_received:0


2.分配指定范围的槽位不成功

CLUSTER ADDSLOTS slot [slot ...]

书上资料上说分配槽位执行如下命令即可,但是实际输了结果不行
127.0.0.1:6382> CLUSTER ADDSLOTS 10923...16383
(error) ERR Invalid or out of range slot
127.0.0.1:6380> CLUSTER ADDSLOTS 0 1 2 3 4 ... 5000
(error) ERR Invalid or out of range slot
真坑,还至今不知原因,不知有没大神看见指点一二。
解决办法:
redis-cli -h 服务器IP -p 端口号 cluster addslots {0..5460}

3.槽位固定是16384个,所以新增服务器后需要注意有没自动分配槽位,如没有需要在其他槽位上分一些过来。

4.一个槽位可以保存多个key,查看1个槽位的key可以使用
cluster getkeysinslot         获取该slot的key列表
CLUSTER KEYSLOT  计算键 key 应该被放置在哪个槽上。  
CLUSTER COUNTKEYSINSLOT  返回槽 slot 目前包含的键值对数量。  
CLUSTER GETKEYSINSLOT   返回 count 个 slot 槽中的键。


持续踩坑中。。。。。。。。。。。

个人收集一些别人有用的文章,供参考:
集群命令:http://blog.51yip.com/nosql/1726.html

redis3.0 cluster功能介绍:https://www.cnblogs.com/qiumingcheng/p/6849125.html



你可能感兴趣的:(redis)