Redis Cluster 集群搭建问题汇总

阅读 (2802)
在学习Redis Cluster 集群搭建过程中遇到的一些问题以及解决方法汇总

1. Creating cluster [ERR]Sorry, can’t connect to node xxx.xxx.xxx.xxx?

如果是首次创建集群,Redis集群配置文件先设置过密码,再通过redis-trib.rb create 创建集群.报以上错误 

1.1 尝试先注释集群配置文件中的密码设置 

requirepass 123456 

masterauth 123456

再 redis-trib.rb create 创建集群,然后重新设置密码

1.2 如果未设置密码报以上错误,ps -ef|grep redis 命令查看进程,redis各端口是否已运行,未运行则先运行

cd /usr/local/cluster/7000
redis-server redis.conf
cd /usr/local/cluster/7001
redis-server redis.conf
cd /usr/local/cluster/7002
redis-server redis.conf
cd /usr/local/cluster/7003
redis-server redis.conf
cd /usr/local/cluster/7004
redis-server redis.conf
cd /usr/local/cluster/7005
redis-server redis.conf

2.莫名其妙死活无法使用redis-trib.rb create创建集群的情况

CLUSTER命令创建集群方法

先给出集群命令表参考

查看复制打印?
//集群(cluster)  
CLUSTER INFO 打印集群的信息  
CLUSTER NODES 列出集群当前已知的所有节点(node),以及这些节点的相关信息。   
  
//节点(node)  
CLUSTER MEET <ip> <port> 将 ip 和 port 所指定的节点添加到集群当中,让它成为集群的一份子。  
CLUSTER FORGET <node_id> 从集群中移除 node_id 指定的节点。  
CLUSTER REPLICATE <node_id> 将当前节点设置为 node_id 指定的节点的从节点。  
CLUSTER SAVECONFIG 将节点的配置文件保存到硬盘里面。   
  
//槽(slot)  
CLUSTER ADDSLOTS <slot> [slot ...] 将一个或多个槽(slot)指派(assign)给当前节点。  
CLUSTER DELSLOTS <slot> [slot ...] 移除一个或多个槽对当前节点的指派。  
CLUSTER FLUSHSLOTS 移除指派给当前节点的所有槽,让当前节点变成一个没有指派任何槽的节点。  
CLUSTER SETSLOT <slot> NODE <node_id> 将槽 slot 指派给 node_id 指定的节点,如果槽已经指派给另一个节点,那么先让另一个节点删除该槽>,然后再进行指派。  
CLUSTER SETSLOT <slot> MIGRATING <node_id> 将本节点的槽 slot 迁移到 node_id 指定的节点中。  
CLUSTER SETSLOT <slot> IMPORTING <node_id> 从 node_id 指定的节点中导入槽 slot 到本节点。  
CLUSTER SETSLOT <slot> STABLE 取消对槽 slot 的导入(import)或者迁移(migrate)。   
  
//键 (key)  
CLUSTER KEYSLOT <key> 计算键 key 应该被放置在哪个槽上。  
CLUSTER COUNTKEYSINSLOT <slot> 返回槽 slot 目前包含的键值对数量。  
CLUSTER GETKEYSINSLOT <slot> <count> 返回 count 个 slot 槽中的键。  

 

2.1 先登录,已设置密码的用密码登录,未设置密码的,直接 -h -p -c登录

[root@localhost 7005]# redis-cli  -h 10.10.10.171 -p 7000 -c -a 123456

2.2 把6个节点添加到集群当中,默认全都为Master

10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7000
10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7001
10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7002
10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7003
10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7004
10.10.10.171:7000>CLUSTER MEET 10.10.10.171 7005
#查看节点信息,后面设置主从会用到
10.10.10.171:7000>CLUSTER NODES

#第一列 类似于 d0d0569cc11242a31db975d4bfa2b26744b27122 40个字符的是 <node_id>

2.3 分别登录7003,7004,7005设置为7000,7001,7002的从节点

10.10.10.171:7003> CLUSTER REPLICATE <node_id>  #这里填7000节点的node_id
10.10.10.171:7003> exit
10.10.10.171:7004> CLUSTER REPLICATE <node_id>  #这里填7001节点的node_id
10.10.10.171:7004> exit
10.10.10.171:7005> CLUSTER REPLICATE <node_id>  #这里填7002节点的node_id
10.10.10.171:7006> exit

2.4 分配slots:分别vim 编缉 7000、7001、7002、7003、7004、7005 目录下的nodes配置文件

node.conf中的master都要如上图添加 0-5460 5461-10922 10923-16383

2.5 加密码,修改vim 编缉 7000、7001、7002、7003、7004、7005 目录下的redis.conf文件

主节点添加 requirepass 123456

从节点添加 masterauth 123456

2.6 重启redis,登录,查看集群信息检查是否正常工作

更新于:2016-12-27 18:04:28
返回顶部