搭建redis集群(填坑篇)

事先申明:本篇博客不是记录如何搭建redis集群,而是记录搭建redis集群中遇到的坑。可以先看看,说不定搭建的时候也会遇到下面记录的问题。

我搭建redis集群时参考的博客:

1.https://www.cnblogs.com/PatrickLiu/p/8458788.html

2.https://www.cnblogs.com/leeSmall/p/8414687.html

3.http://redisdoc.com/topic/cluster-tutorial.html

我的环境:Centos7

坑:

1.redis集群是创建多个redis实例,而不是需要下载多个redis。搭建前没有借助资料,还想用docker整几个出来。

2.至少要创建六个redis实例,官方就是这样规定的。否则创建集群的时候就会报错误,会提示你至少需要六个节点。

3.密码问题。如果我们使用redis-trib.rb这个工具就要注意密码问题,通过命令find / -name "client.rb"找到client.rb这个文件,修改password这一项,改为自己redis.conf设置的密码即可。这个文件是Ruby编写的,语法格式方面都很清楚。

4.创建redis集群的时候会有Waiting for the cluster to join ......,我创建的时候就卡在这里了。一开始以为创建过程要很久,就去吃饭了。回来看见满屏幕的".........."(Waiting for the cluster to join ......)。就是join后面的点。原因:防火墙问题。解决:redis集群有总线的概念,则6379的redis实例,总线端口为16379。所以我们要在防火墙中开放端口6379和16379,6380和16380,以此类推。公式:redis实例端口号+10000。

5.ERR Slot 0 is already busy (Redis::CommandError)创建集群的时候还可能遇到这种问题(数字0那地方还可能是其他数值0~16383)原因:某个redis实例中还存有数据,在创建集群的时候每个redis实例中都不可以有数据。解决:登上每个redis实例flushall,然后再cluster reset。如果还是出现上面的异常,就去每个实例初始化的文件夹删除dump.rdb和nodes-xxx.conf(集群配置文件)。上面说的两个文件每个redis实例初始化文件中都会有,都把他们删掉。

6.(error) NOAUTH Authentication required.出现这个的时候可把我郁闷坏了,我使用redis-cli -c -h 127.0.0.1 -p 6379登陆redis集群客户端,进去之后auth123456命令认证了身份。可是set name test就出现了该异常。原因:现在我们是redis集群,登陆过后再auth认证身份相当于只认证了端口为6379实例的身份,那后面的6380、6381怎么办...解决:redis-cli -c -a 132456 -h 127.0.0.1 -p 6379,应该在登陆客户端的时候就认证了身份,这样就相当于全局认证了。

7.(error) CLUSTERDOWN Hash slot not served出现这个的时候说明某个节点出问题了,具体是哪个节点出问题了,就要看后面提示的哪个槽点(注意这里是槽点)根据槽点编号就能推出是哪个节点。知道哪个节点就用redis-trib.rb检查一下,命令:

ruby redis-trib.rb check 127.0.0.1:6379。然后再修复一下,命令:ruby redis-trib.rb fix 127.0.0.1:6379

我遇到的坑就这么多,伙伴们遇到新的坑可以再评论区说说。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值