# Redis连接问题解决方案 ## 问题描述 用户遇到错误:`[WinError 10061] 由于目标计算机积极拒绝,无法连接` 这个错误表明应用尝试连接Redis服务器失败,通常是因为: 1. Redis服务没有运行 2. Redis配置不正确 3. 防火墙阻止连接 ## 解决方案 ### ✅ 已实现的改进 1. **自动Redis检测和Mock模式** - 修改了 `backend/app/api/tasks.py` - 当Redis不可用时自动切换到Mock模式 - 用户可以在没有Redis的情况下测试基本功能 2. **Redis连接测试工具** - 创建了 `backend/test_redis.py` - 全面测试Redis和Celery连接 - 提供详细的诊断信息 3. **Mock任务模块** - 创建了 `backend/app/tasks/mock_tasks.py` - 模拟完整的任务执行流程 - 生成模拟报告和日志 4. **智能启动脚本** - 创建了 `backend/start_with_redis_check.py` - 启动前自动检查Redis状态 - 提供Redis安装指导 5. **详细设置指南** - 创建了 `backend/REDIS_SETUP.md` - 包含Windows/Linux/macOS的Redis安装方法 - 提供Docker和手动安装选项 ### 🚀 使用方法 #### 方法1: 使用智能启动脚本 (推荐) ```bash cd backend python start_with_redis_check.py ``` #### 方法2: 测试Redis连接 ```bash cd backend python test_redis.py ``` #### 方法3: 直接启动 (如果确定Redis已配置) ```bash cd backend python run.py ``` ### 🔧 Redis安装 (可选) #### Windows (推荐使用Chocolatey) ```bash choco install redis-64 redis-server --service-install redis-server --service-start ``` #### Docker (跨平台) ```bash docker run -d --name redis -p 6379:6379 redis:alpine ``` #### Linux/macOS ```bash # Ubuntu/Debian sudo apt-get install redis-server sudo systemctl start redis-server # macOS (Homebrew) brew install redis brew services start redis ``` ### 🎯 功能对比 | 功能 | Redis模式 | Mock模式 | |------|-----------|----------| | 任务创建 | ✅ | ✅ | | 任务状态跟踪 | ✅ | ✅ | | 任务日志 | ✅ | ✅ | | 报告生成 | ✅ | ✅ (模拟) | | 实际AWS扫描 | ✅ | ❌ | | 并发任务处理 | ✅ | ❌ | | 任务持久化 | ✅ | ✅ | | Worker监控 | ✅ | ❌ | ### 📋 验证步骤 1. **检查Redis状态** ```bash python test_redis.py ``` 2. **启动应用** ```bash python start_with_redis_check.py ``` 3. **测试任务创建** - 访问 http://localhost:3000 - 创建一个测试任务 - 观察任务状态变化 4. **启动Celery Worker (如果有Redis)** ```bash celery -A app.celery_app worker --loglevel=info ``` ### 🔍 故障排除 #### Redis连接失败 1. 检查Redis是否运行: `redis-cli ping` 2. 检查端口占用: `netstat -an | grep 6379` 3. 查看Redis日志 4. 检查防火墙设置 #### Mock模式问题 1. 检查文件权限 2. 确保reports目录可写 3. 查看应用日志 #### Celery Worker问题 1. 确认Redis连接正常 2. 检查Python环境 3. 查看Worker日志 ### 📖 相关文档 - `REDIS_SETUP.md` - Redis详细安装指南 - `backend/test_redis.py` - Redis连接测试 - `backend/start_with_redis_check.py` - 智能启动脚本 - `backend/app/tasks/mock_tasks.py` - Mock任务实现 ### 🎉 优势 1. **用户友好**: 自动检测和处理Redis连接问题 2. **开发便利**: 无需Redis即可进行基本功能测试 3. **生产就绪**: 完整的Redis支持和监控 4. **灵活部署**: 支持多种Redis部署方式 5. **详细诊断**: 全面的连接测试和错误提示 --- 现在用户可以在任何环境下顺利运行AWS Resource Scanner,无论是否安装了Redis! 🚀