以下是在Debian系统上排查Redis故障的常用方法:
一、基础服务状态检查
-
检查服务是否运行
sudo systemctl status redis # 查看服务状态 sudo ps aux | grep redis-server # 确认进程是否存在- 若服务未运行,尝试启动:
sudo systemctl start redis。
- 若服务未运行,尝试启动:
-
查看配置文件
sudo nano /etc/redis/redis.conf # 检查关键配置(bind、port、权限等)- 确保
bind配置正确(如需远程访问可设为0.0.0.0),port未被占用,数据目录权限正确(chown -R redis:redis /var/lib/redis)。
- 确保
二、日志分析
-
实时查看错误日志
sudo tail -f /var/log/redis/redis-server.log # 默认日志路径- 关注
[ERROR]或[WARN]级别的日志,如端口冲突、内存不足、配置错误等。
- 关注
-
分析慢查询日志
sudo redis-cli SLOWLOG GET # 查看慢查询记录 sudo CONFIG SET slowlog-log-slower-than 10000 # 设置慢查询阈值(微秒)
三、网络与连接排查
-
检查端口连通性
sudo ufw status # 查看防火墙规则,确保6379端口开放 sudo netstat -tulnp | grep 6379 # 检查端口占用情况- 若端口被占用,修改
redis.conf中的port或停止占用进程。
- 若端口被占用,修改
-
测试客户端连接
redis-cli ping # 测试基本连接 redis-cli -h-p <端口> ping # 远程连接测试 - 若连接失败,检查防火墙、
bind配置及网络路由。
- 若连接失败,检查防火墙、
四、性能与资源监控
-
系统资源监控
top # 查看CPU、内存使用情况 free -h # 检查内存剩余量 df -h /var/lib/redis # 确认数据目录磁盘空间充足 -
Redis内部指标监控
redis-cli INFO MEMORY # 查看内存使用详情 redis-cli INFO STATS # 查看命令执行统计 sudo redis-benchmark # 基准测试性能瓶颈
五、常见问题处理
- 内存不足:调整
maxmemory参数并设置淘汰策略(如volatile-lru)。 - 持久化失败:检查RDB/AOF文件权限,尝试修复或重建(
redis-check-aof --fix)。 - 依赖库问题:安装缺失的库(如
jemalloc),确保版本兼容。
六、工具推荐
- 可视化监控:使用
RedisInsight或Prometheus+Grafana监控集群状态。 - 日志分析:通过
ELK(Elasticsearch+Logstash+Kibana)集中分析Redis日志。
参考来源: