1 Notes
在视频学习场景里,播放进度会随着 timeupdate 高频触发。如果每一次进度变化都直接写 MySQL,数据库会承担大量重复写入,真实业务价值却很低。
我的处理思路是把播放中的临时状态放到 Redis,按用户、课程、视频维度维护最新进度和写入次数。只有在完播、退出学习或延迟任务触发时,才把最终状态同步到 MySQL。
这个方案的关键不是简单加缓存,而是把数据分为过程态和结果态。过程态追求低延迟和可覆盖这里可以作为架构取舍的核心旁注:缓存负责高频过程,数据库负责最终事实。2026-06-03 13:35,结果态追求准确和可追溯。面试里讲这段时,我会重点解释幂等 key、完播优先级和异常恢复。