项目场景:
使用ECS部署Redis集群,集群架构为3主3从。
问题描述
当使用以下命令构建集群关系时,出现两种错误。
redis-cli -a 802324 --cluster create --cluster-replicas 1 47.115.222.210:6379 47.115.222.210:6380 47.115.222.210:6381 47.115.222.210:6382 47.115.222.210:6383 47.115.222.210:6384
报错一:
Could not connect to Redis at 47.115.222.210:6382: Connection timed out
报错二:
一直卡在waiting for the cluster to join
Waiting for the cluster to join
原因分析:
报错一解决方法:
服务器没有开放redis节点对应的端口,将端口开放即可。
报错二解决方法:
Redis集群中的节点需要打开两个TCP连接,一个是对应的服务端口,即配置文件redis.conf中的配置的端口,另一个是集群总线端口,需要打开这些端口,集群节点之间才能通信,从而构建集群关系。各个节点默认的集群总线端口是服务端口+10000 。
解决方案:
- 登录阿里云,在对应的服务器实例中配置安全组规则,开放端口。(每次都要登录,真的好烦哦,我直接给全部开放了,哈哈哈哈)
- 使用ssh连接服务器,使用firewall-cmd命令开放对应端口。(开放什么端口,该端口号就行,也可以直接把防火墙关了,一了百了)
firewall-cmd --zone=public --add-port=16379/tcp --permanent
firewall-cmd --reload
PS:为什么既需要控制台开放,还需要系统内命令开放..........................