Redis在Debian上如何进行故障排查

以下是在Debian系统上排查Redis故障的常用方法:

一、基础服务状态检查

  1. 检查服务是否运行

    sudo systemctl status redis  # 查看服务状态
    sudo ps aux | grep redis-server  # 确认进程是否存在
    
    • 若服务未运行,尝试启动:sudo systemctl start redis
  2. 查看配置文件

    sudo nano /etc/redis/redis.conf  # 检查关键配置(bind、port、权限等)
    
    • 确保bind配置正确(如需远程访问可设为0.0.0.0),port未被占用,数据目录权限正确(chown -R redis:redis /var/lib/redis)。

二、日志分析

  1. 实时查看错误日志

    sudo tail -f /var/log/redis/redis-server.log  # 默认日志路径
    
    • 关注[ERROR][WARN]级别的日志,如端口冲突、内存不足、配置错误等。
  2. 分析慢查询日志

    sudo redis-cli SLOWLOG GET  # 查看慢查询记录
    sudo CONFIG SET slowlog-log-slower-than 10000  # 设置慢查询阈值(微秒)
    
    

三、网络与连接排查

  1. 检查端口连通性

    sudo ufw status  # 查看防火墙规则,确保6379端口开放
    sudo netstat -tulnp | grep 6379  # 检查端口占用情况
    
    • 若端口被占用,修改redis.conf中的port或停止占用进程。
  2. 测试客户端连接

    redis-cli ping  # 测试基本连接
    redis-cli -h  -p <端口> ping  # 远程连接测试
    
    • 若连接失败,检查防火墙、bind配置及网络路由。

四、性能与资源监控

  1. 系统资源监控

    top  # 查看CPU、内存使用情况
    free -h  # 检查内存剩余量
    df -h /var/lib/redis  # 确认数据目录磁盘空间充足
    
  2. Redis内部指标监控

    redis-cli INFO MEMORY  # 查看内存使用详情
    redis-cli INFO STATS  # 查看命令执行统计
    sudo redis-benchmark  # 基准测试性能瓶颈
    

五、常见问题处理

  • 内存不足:调整maxmemory参数并设置淘汰策略(如volatile-lru)。
  • 持久化失败:检查RDB/AOF文件权限,尝试修复或重建(redis-check-aof --fix)。
  • 依赖库问题:安装缺失的库(如jemalloc),确保版本兼容。

六、工具推荐

  • 可视化监控:使用RedisInsightPrometheus+Grafana监控集群状态。
  • 日志分析:通过ELK(Elasticsearch+Logstash+Kibana)集中分析Redis日志。

参考来源: