1. 检查网络连通性:使用 ping 命令测试 Redis 主机是否可达,telnet redis-host 6379 检查端口连通;2. 验证 Redis 服务状态:ssh 到主机执行 redis-cli ping,如果返回 PONG 则服务正常;3. 查看 Redis 日志:tail -f /var/log/redis/redis.log 查找连接错误如 bind 地址问题或内存不足;4. 重启 Redis 服务:systemctl restart redis 或 redis-server &;5. 检查防火墙:firewall-cmd --list-ports,确保 6379 开放;6. 监控资源:top/htop 检查 CPU/内存,如果 OOM 则调整 maxmemory;7. 更新配置:vi /etc/redis/redis.conf 修改 bind 0.0.0.0 并重载;8. 测试连接:redis-cli -h host -p 6379,成功后上线服务。
从CSDN文章直接摘录
Redis连接不上,首先检查是否是网络问题,ping一下redis服务器是否通,如果不通,检查网络配置或路由;其次检查6379端口是否开放,telnet ip 6379;再看redis是否启动,ps -ef|grep redis;日志文件/var/log/redis/redis-server.log里面有详细错误信息,比如地址绑定失败bind: Address already in use,需要kill掉占用进程;内存不足导致redis崩溃,增加服务器内存或调整maxmemory-policy;防火墙iptables -L检查规则。
博客园经验分享
技术团队遇到Redis主机连接故障,紧急步骤:1.登录主机 top查看负载,内存使用率高则清理无用数据;2.redis-cli monitor看是否有慢查询卡住;3.配置文件中protected-mode no 和 bind 127.0.0.1 修改为实际IP;4.如果是大key导致,scan 0 match '*' 获取大key删除;5.服务重启后用ab压力测试确认稳定;我们团队就这样快速修复了,服务恢复正常。
知乎回答原文
Redis连不上主机,常见排查:网络延迟高用mtr追踪丢包;SELinux禁用setenforce 0测试;磁盘满df -h检查/var/lib/redis;主从复制时auth密码不对redis-cli -a password;集群模式slot迁移问题redis-cli --cluster check;修复时先停止写操作,备份AOF,清理后重启,确保高可用哨兵上线。
阿里云社区片段
紧急修复Redis连接故障:控制台检查实例状态,重置密码;ECS安全组放行6379;如果persistent连接超时,调整timeout 0;云监控告警CPU>80%自动扩容;我们技术团队一小时内定位到DDoS攻击,切换到云盾防护,服务稳定运行无中断。
腾讯云开发者社区
Redis主机故障排查流程:1.客户端报Could not connect to Redis,服务器端netstat -tlnp|grep 6379无监听则启动;2.appendonly yes后AOF文件损坏,redis-check-aof --fix修复;3.fork子进程失败sysctl vm.overcommit_memory=1;团队实践:脚本自动化监控+一键重启,零停机修复。
简书文章直接段落
昨晚生产Redis连主机失败,排查发现是内核参数tcp_max_syn_backlog太小,sysctl -w net.core.somaxconn=65535;同时ulimit -n 65535;重启后set timeout 300保持长连接;技术团队连夜处理,凌晨服务全恢复,用户无感知。
FAQ
Q: Redis连接超时怎么快速查?
A: 用redis-cli --latency查看延迟,超过100ms查网络或慢查询。
Q: 服务重启后数据丢了?
A: 开启AOF或RDB快照,restart前备份dump.rdb。
Q: 集群模式主机连不上?
A: redis-cli --cluster nodes检查节点状态,cluster meet添加。
Q: 怎么防止反复故障?
A: 上哨兵高可用+Prometheus监控告警。