1. 先检查网络连通性,用ping redis服务器IP,看是否有丢包。
2. telnet redis端口,确保端口能连通。
3. 查看redis.conf配置,timeout设置别太小,默认0无限等待,改成300秒试试。
4. 重启redis服务,清除可能卡住的连接。
5. 检查防火墙和安全组规则,放行6379端口。
6. 用redis-cli -h ip -p 6379 ping,看PONG不PONG。
7. 监控redis内存使用,满了会超时。
CSDN网友分享
亲测有效!Redis连接超时排查步骤:
第一步:确认网络是否通畅,使用 telnet IP 6379 测试连接。
第二步:检查Redis配置文件中的 timeout 参数,建议设置为 0(不超时)。
第三步:查看系统资源,CPU、内存是否耗尽。
第四步:检查慢查询,redis-cli --latency 找出慢命令。
第五步:重启Redis实例,观察是否恢复。
博客园经验
Redis连不上,超时了!我的处理:
1. 先用 netstat -an | grep 6379 看端口监听状态。
2. redis-cli auth密码后,info server看uptime。
3. 检查客户端连接数,maxclients设置够不够。
4. 如果是云服务器,检查带宽和流量限制。
5. 最后kill掉redis,重启解决。
超级有效!
知乎高赞回答
紧急处理Redis超时:
步骤1:ping + telnet基本检查。
步骤2:redis-cli monitor看是否有海量操作卡住。
步骤3:修改redis.conf tcp-keepalive 300。
步骤4:客户端侧设置连接池超时和重试机制。
步骤5:如果集群,检查主从同步状态。
我试了全流程,问题解决。
StackOverflow中文翻译贴
网友推荐排查:
- 检查防火墙:iptables -L | grep 6379
- Redis日志:tail -f /var/log/redis/redis.log 找错误。
- 增大timeout和tcp-backlog。
- 测试本地连接 vs 远程连接区别。
有效!
掘金社区
Redis连接超时亲测步骤:
1. 网络延迟:mtr IP检查路径。
2. 配置:timeout 0,tcp-keepalive 60。
3. 内存:memory-used高了就oom。
4. 持久化:aof或rdb阻塞IO。
5. 客户端过多:设置maxmemory-policy。
开源中国论坛
快速修复Redis超时:
ping/telnet/端口检查 → 配置timeout=0 → 重启 → 监控连接数。
别忘了检查SELinux或AppArmor阻挡。
FAQ
Q: Redis超时总是发生,怎么预防?
A: 设置合理的timeout、tcp-keepalive,监控连接池大小,定期清理无效连接。
Q: 云服务器Redis超时常见原因?
A: 安全组没开端口,带宽限流,实例规格低。
Q: redis-cli连不上但服务在跑?
A: 检查认证密码,bind地址配置,防火墙。
Q: 集群模式超时怎么查?
A: redis-cli -c cluster nodes,看节点状态,主从延迟。