运维免费技术教程之redis调配

尽管从节点配置了replicaofmasterauth,但master_link_status:down仍说明主从之间的网络/认证/主节点配置仍有未解决的问题。以下是按优先级的终极排查步骤,覆盖所有可能导致连接失败的核心原因:

一、先做「一键验证」:从节点测试主节点可达性(最核心)

登录从节点服务器,执行以下命令,逐行验证主节点的网络和Redis服务是否正常:

# 1. 测试主节点IP是否能ping通(基础网络)
ping 10.0.0.51
# 若ping不通 → 网络隔离(子网/防火墙/路由),先找运维解决网络

# 2. 测试主节点6379端口是否开放(关键)
telnet 10.0.0.51 6379
# 或无telnet用nc
nc -zv 10.0.0.51 6379
# 结果判断:
# - 提示Connection refused/超时 → 主节点防火墙拦截/Redis未监听6379/Redis未启动
# - 进入空白界面/显示connected → 端口通,排查认证/配置

# 3. 模拟从节点连接主节点,验证密码是否正确
./redis-cli -h 10.0.0.51 -p 6379 -a 111222 ping
# 结果判断:
# - 返回PONG → 密码正确;返回NOAUTH → 密码错误;返回Could not connect → 网络/Redis未启动

二、逐行排查主节点(10.0.0.51)的关键配置

主节点必须满足「可被访问+认证正确+服务正常」,逐一验证:

1. 主节点Redis是否真的在运行?
# 登录主节点执行
ps -ef | grep redis-server
# 无输出 → 启动主节点:./redis-server /usr/local/redis/redis.conf
2. 主节点是否监听0.0.0.51(而非仅127.0.0.1)?
# 主节点执行
ss -tulnp | grep 6379
# 正确输出:LISTEN 0      511         0.0.0.0:6379    0.0.0.0:*    users:(("redis-server",pid=xxx,fd=xxx))
# 错误输出:LISTEN 0      511       127.0.0.1:6379    0.0.0.0:* → 仅本地监听,从节点无法连接

# 若监听错误 → 修改主节点redis.conf,重启:
sed -i 's/bind 127.0.0.1/bind 0.0.0.0/' /usr/local/redis/redis.conf
./redis-cli shutdown && ./redis-server /usr/local/redis/redis.conf
3. 主节点防火墙/SELinux是否拦截6379?
# 主节点执行(CentOS/RHEL)
# 临时关闭防火墙测试(重启失效)
systemctl stop firewalld
# 临时关闭SELinux(重启失效)
setenforce 0

# 永久开放6379(验证成功后再配置)
firewall-cmd --permanent --add-port=6379/tcp
firewall-cmd --reload
4. 主节点密码是否真的是111222?
# 主节点执行
./redis-cli config get requirepass
# 输出:1) "requirepass" 2) "111222" → 正确;输出"" → 无密码(从节点需删除masterauth配置)
5. 主节点保护模式是否关闭?
# 主节点执行
./redis-cli config get protected-mode
# 输出:1) "protected-mode" 2) "no" → 正确;若为yes → 临时关闭:config set protected-mode no

三、从节点配置的最终修正(确保无任何错误)

即使前面配置正确,从节点的「残留配置」也可能导致连接失败,执行以下命令重置:

# 登录从节点redis-cli
./redis-cli
127.0.0.1:6379> replicaof no one  # 清空旧的主从关系
127.0.0.1:6379> config set masterauth 111222  # 重新配置主节点密码
127.0.0.1:6379> replicaof 10.0.0.51 6379     # 重新指向主节点
127.0.0.1:6379> info replication             # 立即查看master_link_status

四、查看Redis日志(精准定位错误)

若以上步骤仍未解决,查看从节点日志(redis.conf中logfile路径,若为空则看系统日志):

# 从节点查看日志(示例路径,根据实际配置调整)
tail -f /var/log/redis/redis-server.log
# 或系统日志
journalctl -u redis-server

# 常见错误日志及解决方案:
# 1. "NOAUTH Authentication required" → 从节点masterauth与主节点requirepass不一致
# 2. "connect to 10.0.0.51:6379 failed (errno=111)" → 主节点端口不通/Redis未启动
# 3. "connect to 10.0.0.51:6379 failed (errno=101)" → 主从网络不通(子网/路由问题)

五、最常见的3个「坑」(90%的失败原因)

  1. 主节点密码输错:比如主节点是111222,从节点写成11122/123456
  2. 主节点仅监听127.0.0.1:修改bind后未重启Redis;
  3. 主节点防火墙没关:CentOS默认开启firewalld,拦截所有外部端口。

验证成功的标志

从节点执行info replication,出现以下字段即成功:

master_link_status:up  # 核心:连接状态为up
master_last_io_seconds_ago:1  # 最近一次交互时间(非-1)
master_sync_in_progress:0     # 同步完成(或1表示正在同步)

按以上步骤排查,99%的master_link_status:down都能解决。若仍失败,优先确认「从节点能telnet通主节点6379」+「从节点用密码能ping通主节点」,这两个是基础中的基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

teayear

亲,感觉不错,打赏杯咖啡哦^^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值