redis集群启动方式

本文详细介绍如何在项目开发中搭建Redis集群,包括启动各节点、使用不同版本的集群命令进行创建等步骤,并提供了解决常见错误的方法。

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

在项目开发中,redis集群应用的越来越多,下面对redis集群的启动记录如下。
进入每个节点的bin目录,执行如下
./redis-server 6379/redis.conf
./redis-server 6380/redis.conf
ps -ef | grep redis
确认所有的节点都启动后,接下来使用参数create 创建。
如果redis版本为5之前可以使用ruby方式,redis集群命令:
./redis-trib.rb create --replicas 1 ip1:port1 ip1:port2 ip2:port1 ip2:port2 ip3:port1 ip3:port2
如果redis版本为5.0.x及以上的,redis集群命令:
./redis-cli --cluster create --cluster-replicas 1 ip1:port1 ip1:port2 ip2:port1 ip2:port2 ip3:port1 ip3:port2

若运行中报错[ERR] Node 192.168.0.102:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.
解决方法:原因为发生在每次非正常关闭redis集群的时候 。
将redis 进程干掉(ps -ef | grep redis kill -9 pid),
将每个节点下aof、rdb、nodes.conf本地备份文件删除;
若运行中,提示Can I set the above configuration? (type ‘yes’ to accept): yes
解决方法://输入yes
启动成功结果:

...
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
### Redis集群启动报错解决方案 当尝试创建Redis集群时遇到`Connection refused`错误,这通常意味着客户端无法与指定地址上的服务器建立TCP连接。此问题可能由多种原因引起。 #### 检查防火墙设置 确保所有涉及的机器之间的网络通信畅通无阻。如果存在防火墙,则需确认端口未被阻止。对于本案例中的情况,应该允许7001至7006这些端口间的访问[^2]。 #### 验证实例状态 另一个常见的原因是目标主机上并没有正在监听该端口号的服务进程。可以通过执行如下命令验证各个节点是否正常运行: ```bash ps aux | grep redis-server ``` 上述命令会列出当前系统内所有的Redis服务及其对应的配置文件路径。若发现缺少预期中的某些实例,则可能是由于它们未能成功启动所致;此时应查阅日志文件以获取更多信息[^3]。 #### 清理已有数据 有时即使表面上看起来一切正常,但如果之前已经有过一次失败的安装过程或是实验性的部署操作残留下来的数据可能会干扰新的初始化流程。因此建议先清理掉旧有的数据库记录再重试: ```bash rm -rf /var/lib/redis/* ``` 注意备份重要资料后再做删除动作! #### 修改配置参数 最后还有一种可能性是因为默认情况下Redis仅绑定到本地回环接口(`127.0.0.1`)而非外部网卡IP地址,从而使得远程连接变得不可能实现。编辑每台设备上的`/etc/redis.conf`文档,在其中找到关于bind字段的部分将其更改为实际使用的静态公网IPv4数值即可解决问题[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值