SpringBoot获取Redis集群实例有缺少的问题->为Redis集群新增节点分配slot

下午在对redis集群进行一系列的测试的时候(为寒假做自己在家做毕业设计准备一些东西),发现自己三个服务器明明是9个节点,但是获取到的实例中缺只有6个(一直都是6个,自己没去注意而已,下午想用代码获取所有key时候,输出节点,发现只有6个),感觉很莫名其妙。


可以看到自己在配置文件中配置是9个节点但是,却生成实例却没有包含,毕竟新手,完全不知道怎么回事。以为这三个节点没启动,但是集群状态是正常的


瞅了半天代码,瞅了半天服务器,啥也没瞅出来,我就想往那三个节点插一些东西,发现怎么都插不进去,再查看状态发现一个问题:

这三分地方好像没有数字哎,,,突然想到分槽这个东西,是不是因为没有slot,所以java代码就不会对他们生成实例,(前面我添加节点的时候以为会自己分配),百度也没出现这些问题,可能我太智障了,新增节点不知道去分配slot。

于是便开始分配slot,中间出现不能连接的情况,因为自己集群设置了密码,所以我们需要去client.rb 中把集群密码设置一下。路径在ruby目录下,安装目录不同,位置也会不同。

我的路径:/usr/local/rvm/gems/ruby-2.3.3/gems/redis-4.0.1/lib/redis/client.rb

然后开始分槽

# ./redis-trib.rb reshard 192.168.10.219:6378 //下面是主要过程  
  
How many slots do you want to move (from 1 to 16384)? 1000 //设置slot数1000  
What is the receiving node ID? 03ccad2ba5dd1e062464bc7590400441fafb63f2 //新节点node id  
Please enter all the source node IDs.  
 Type 'all' to use all the nodes as source nodes for the hash slots.  
 Type 'done' once you entered all the source nodes IDs.  
Source node #1:all //表示全部节点重新洗牌  

Do you want to proceed with the proposed reshard plan (yes/no)? yes //确认重新分

结果:


果然是因为自己没有分槽的原因。。大哭。。记录一下

猜你喜欢

转载自blog.csdn.net/qq442270636/article/details/79290755