redis-cli verbose模式查询及远程Redis连接故障排查方法
Redis远程连接无响应的排查方案
一、redis-cli可用的调试/信息参数
- 使用
redis-cli -h <host> -p <port> --verbose:该参数会输出连接全流程的详细日志,包括DNS解析、TCP握手、协议交互等环节的状态,能精准定位卡壳阶段。 - 使用
redis-cli -h <host> -p <port> --latency:测试连接延迟数据,若为网络问题导致超时,能直观展示延迟波动;若连接失败,会直接返回超时提示。 - 使用
redis-cli -h <host> -p <port> --test:自动执行PING、SET、GET等基础命令并返回结果,快速验证连接有效性与命令执行权限。 - 配合超时参数
-t:比如redis-cli -h <host> -p <port> -t 5,设置5秒超时阈值,避免长时间等待,超时后会明确返回错误(如连接超时、拒绝连接等)。
二、远程Redis连接排查步骤
1. 先排查网络层面
- 执行
ping <host>:验证目标主机是否可达,若ping不通,优先排查网络路由、主机下线或防火墙拦截问题。 - 执行
telnet <host> <port>:测试目标端口是否开放,若无法连接,大概率是服务器防火墙(iptables/firewalld)拦截了Redis端口,或Redis未监听该端口。 - 使用
nc -zv <host> <port>(需安装netcat):更直观地判断端口状态,成功时会返回“Connection toport [tcp/*] succeeded!”,失败则明确提示拒绝或超时。
2. 检查Redis服务配置
- 查看
redis.conf中的bind参数:若设置为127.0.0.1,Redis仅监听本地回环地址,需改为0.0.0.0或指定允许的IP段。 - 检查
protected-mode参数:默认开启状态下,未设置密码或绑定IP的Redis会拒绝远程连接,需关闭该模式或配置密码、允许IP。 - 验证Redis服务状态:在目标服务器执行
ps aux | grep redis-server确认进程存在,或本地执行redis-cli ping测试服务可用性。
3. 排查认证与权限问题
- 若Redis设置了密码,连接时需添加
-a <password>参数,或连接后执行AUTH <password>,未认证的连接可能表现为无响应(实际处于等待认证状态)。 - 检查SELinux状态:若目标服务器开启SELinux强制模式,可能拦截Redis网络连接,可临时执行
setenforce 0测试,或配置SELinux规则允许Redis端口通信。
4. 排查网络中间设备
- 跨机房/公网连接时,检查NAT设备、负载均衡器的端口映射是否正确,是否有限流规则导致连接被丢弃。
- 确认本地网络的代理、防火墙是否拦截了出站到Redis端口的连接。
内容的提问来源于stack exchange,提问作者Igor
相关产品推荐
相关产品推荐

