集群搭建
记录自己搭建Redis及集群的过程,希望下次长点脑子。。。
搭建环境
腾讯云 CentOS 7.6(一台)
redis 6.0.16
搭建用户:普通用户(因此踩坑了。。。)
搭建过程
搭建步骤参考:redis6.0.+ 版本 集群搭建 和 Redis6.0集群搭建与简单使用
问题&解决
-
make编译报错
参考文章中有提醒:安装redis6.0.1,gcc版本要在5.3以上!!!
我检查了,版本4.8.5,不对,需要升级版本。
然后,我用root用户升级了gcc,又用root检查了gcc版本,版本已符合条件。OK,开干,于是我继续用普通用户安装redis,然后,依然报错,why???
最后检查一圈才发现,因为当前普通用户的xshell连接是在root用户升级gcc前就打开的,所以gcc升级后,当前连接的gcc依然停留在4.8.5,我升级了个寂寞。。。
解决:当前shell执行scl enable devtoolset-9 bash
是gcc新版本生效(或者断开连接再重连?)这不算坑,这算是没脑子。。。
-
集群搭建报错
参考文章中有提醒:创建集群时使用绝对ip,不要使用127.0.0.1,于是我使用了腾讯云的内网ip,但当执行redis-cli --cluster create ... --cluster-replicas 1
后报错,提示拒绝连接。emmmmm
问题查找:参考阿里云服务器搭建Redis集群踩到的坑,查明,redis.conf 文件的bind配置错误。bind的作用是用于限制哪些ip可以连接服务,默认bind配置为:172.0.0.1,限制只有本机可以连接服务,创建集群时使用的是腾讯云的内网IP,因此被拒绝访问。
解决:将bind配置修改为 0.0.0.0 ,可以允许所有ip访问,再次执行redis-cli --cluster create ... --cluster-replicas 1
后,集群创建成功。参考文章中也提到了bind的问题,但是我没仔细看。。。
-
redis-cli命令不能直接使用
使用redis-server
报错-bash: redis-server: command not found
。
因为redis执行make install
时自定义了安装目录,因此 redis-cli、redis-server等都不是全局命令,将安装目录下的redis-cli、redis-server 复制到/use/bin下即可。我何必要自定义安装目录呢???
2022-03-17更新
4. 外网项目连接时报错
在外网中springboot项目中链接该redis,配置文件中写的公网IP,但链接是打断点发现项目从集群获取信息后转换成了腾讯云的内网ip,导致链接报错。
解决:参考文章云服务器Redis集群部署及客户端通过公网IP连接问题,将redis.config中的cluster-announce-ip配置写死为云服务器的公网ip即可。