redis6.0集群搭建记录

本文记录了一位用户在腾讯云CentOS7.6上以普通用户身份搭建Redis6.0.16集群的过程中遇到的问题及解决方案。包括因GCC版本过低导致的make编译错误,解决办法是使用sclenabledevtoolset-9bash;集群搭建时由于bind配置错误使用内网IP导致的连接拒绝,解决方法是将bind改为0.0.0.0;以及redis-cli命令不可用的问题,通过将redis可执行文件复制到/usr/bin解决。此外,还解决了外网项目连接时因集群IP转换为内网IP而报错的问题,通过设置cluster-announce-ip为公网IP解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集群搭建

记录自己搭建Redis及集群的过程,希望下次长点脑子。。。
搭建环境

腾讯云 CentOS 7.6(一台)
redis 6.0.16
搭建用户:普通用户(因此踩坑了。。。)

搭建过程

搭建步骤参考:redis6.0.+ 版本 集群搭建Redis6.0集群搭建与简单使用

问题&解决
  1. 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新版本生效(或者断开连接再重连?)

    这不算坑,这算是没脑子。。。

  2. 集群搭建报错
    参考文章中有提醒:创建集群时使用绝对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的问题,但是我没仔细看。。。

  3. 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即可。

### 如何配置和使用Redis 6.0集群 #### 配置环境 为了成功创建和管理 Redis 6.0集群,确保环境中已正确安装了 Redis 并且 `redis-cli` 和其他必要的工具位于系统的 PATH 中以便可以直接调用[^4]。 #### 创建集群Redis 版本更新至 5.0 后,官方不再支持通过 Ruby 文件来构建集群;相反,推荐采用内置于 `redis-cli` 工具中的命令来进行操作。对于想要部署 Redis 6.0 集群的情况来说,应当利用如下所示的新命令格式: ```shell src/redis-cli --cluster create \ 192.168.211.129:9001 192.168.211.129:9002 \ 192.168.211.129:9003 192.168.211.129:9004 \ 192.168.211.129:9005 192.168.211.129:9006 \ --cluster-replicas 1 ``` 上述指令会初始化一个新的集群实例,并指定每台服务器上的端口号以及副本数量为一[^1]。 #### 设置密码保护(可选) 当安全需求较高时,可以通过连接到每一个节点并为其设定访问权限的方式增强安全性。具体做法是在每个节点上运行下面这些命令以设置主从认证所需的密码,并将其保存进配置文件中: ```shell /opt/MPP/redis/src/redis-cli -h 192.168.26.15 -p 7000 \ config set masterauth "your_password" config set requirepass "your_password" auth "your_password" config rewrite exit ``` 这里需要注意替换 `"your_password"` 成实际使用的强密码字符串[^5]。 #### 清理旧数据(必要情况下) 如果有先前存在的测试或临时性的配置残留,则可能需要先清理掉它们再继续下一步骤的操作。这通常涉及到删除特定路径下的某些文件,比如这样做的例子: ```shell rm -f nodes-*.conf *.rdb ``` 此命令将会移除所有匹配模式的文件,从而避免潜在冲突的发生[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值