QAUP_Management/doc/work/REDIS_OPTIMIZATION.md

3.4 KiB
Raw Permalink Blame History

Redis 内存优化 - 快速参考

🚀 快速开始

1 诊断当前状态

./scripts/redis_memory_diagnosis.sh

2 配置 Redis 内存限制

./scripts/configure_redis_memory.sh
# 开发环境选 1 (256MB)
# 生产环境选 2 (1GB)

3 重新编译部署

mvn clean install -DskipTests
./ry.sh restart

📊 已实施的优化

优化项 修改前 修改后 效果
Redis 默认缓存过期 永不过期 1小时 防止内存泄漏
WebSocket 消息缓存 100条/30分钟 50条/10分钟 减少50%占用
内存缓存清理 每分钟 自动清理不活跃数据
Redis 内存限制 无限制 256MB/1GB 防止OOM
缓存监控 每5分钟 及时发现问题

🔍 常用命令

查看 Redis 内存使用

redis-cli INFO memory | grep used_memory_human

查看 Key 数量

redis-cli DBSIZE

查看最大的 Key

redis-cli --bigkeys

查看配置

redis-cli CONFIG GET maxmemory
redis-cli CONFIG GET maxmemory-policy

手动设置内存限制

# 设置为 512MB
redis-cli CONFIG SET maxmemory 512mb
redis-cli CONFIG SET maxmemory-policy volatile-lru

清理所有缓存 (⚠️ 谨慎使用)

redis-cli FLUSHDB

📁 修改的文件

核心修改

新增文件

📈 监控指标

应用日志 (每分钟)

清理不活跃缓存对象: X 个移动对象, Y 个航班通知

Redis 监控 (每5分钟)

Redis 内存使用情况 - 当前: XXM, 峰值: XXM, 限制: 256M

告警阈值

  • 🟢 正常: < 70%
  • 🟡 警告: 70-80%
  • 🟠 注意: 80-90%
  • 🔴 严重: > 90%

🎯 预期效果

  • 内存占用降低 50-70%
  • 内存使用稳定
  • 自动清理过期数据
  • 防止内存泄漏
  • 性能无明显影响

🔄 回滚方案

如果出现问题:

# 1. 恢复 Git
git checkout qaup-common/src/main/java/com/qaup/common/core/redis/RedisCache.java

# 2. 移除内存限制
redis-cli CONFIG SET maxmemory 0

# 3. 重新部署
mvn clean install -DskipTests && ./ry.sh restart

📚 详细文档

⚠️ 注意事项

  1. 生产环境务必先备份
  2. 建议先在测试环境验证
  3. 监控应用性能和日志
  4. Redis 配置实时生效,应用需重启

最后更新: 2025-10-13 | 版本: 1.0.0