逐日 AI

MySQL 与 Redis 日常维护:自部署系统的数据底线

作者:夸父

自部署视频生产系统的两大数据依赖的维护要点:MySQL 的备份与慢查询、Redis 的内存与持久化,以及一套"每周十分钟"的维护例行。

两个组件各管什么

MySQL:项目、切片、用户、配置——这是系统的核心资产所在,丢库等于丢全部内容资产。

Redis:任务队列(BullMQ)与缓存——丢了任务状态可以重建(未完成切片重新排队),但生产环境的队列断电保护还是要配。

MySQL 的三件事

每日备份(最重要):mysqldump --single-transaction -u user -p aivideo | gzip > backup-$(date +%F).sql.gz,crontab 每天凌晨跑,备份文件同步到 OSS 或异地机器,保留 30 天。没配备份的今天就去配,这篇指南里没有比这更重要的事。

磁盘水位:数据目录所在磁盘保持 20% 以上空闲,视频生产系统的 storage 目录增长快,磁盘写满会导致数据库与素材双双出问题。df -h 进每周例行。

慢查询:开启 slow_query_log(阈值 1 秒),每月看一眼 top 慢查询;项目数据量在几十万行以内通常不需要优化,出现慢查询多半是缺索引或磁盘 IO 打满。

Redis 的两件事

内存上限:配置 maxmemory 与淘汰策略(队列场景建议 noeviction + 监控),防止内存被吃满拖垮整机;持久化:开 AOF(每秒刷盘),重启后队列任务不丢——对长时间跑批量的生产环境这是刚需。

每周十分钟例行

df -h                          # 磁盘水位
ls -lh /backup | tail -7       # 备份在更新
redis-cli info memory | grep used_memory_human
pm2 list                       # 服务健康

把这四条存成脚本,每周一跑一遍——自部署系统的绝大多数"突然出事",回头看都是这几项早就亮了红灯。

常见问题

不做维护会怎样?

MySQL 长期不备份 = 一次磁盘故障丢掉全部项目数据;Redis 不设内存上限 = 内存被吃满拖垮整台服务器。维护不是可选的优化,是数据资产的保险。

备份怎么做最简单?

mysqldump 每日定时 + 备份文件传到 OSS/异地,保留 30 天。十分钟配一次 crontab,之后全自动——逐日 AI 的项目数据都在 MySQL,这是最重要的备份对象。

需要数据库专家吗?

日常维护不需要:备份、磁盘水位、慢查询日志三件事看懂就够。真正需要专家的场景(主从、分库)在你日活过万之前基本不会遇到。

三步,出你的第一条片

套用一个案例模板,替换成你的内容——注册后即可进入工作台逐段生成、合成导出。

反馈建议