导语:项目上线了(26 篇),但数据一多、访问一多就会慢。这一篇给待办应用加 Redis 缓存层——顺便实测"加了到底快多少"。
你的待办应用现在每次打开页面,后端都要去 SQLite 查一遍数据库。数据少时感觉不出来,但访问一多、数据一多,每次请求都翻数据库就是浪费。
16 篇讲过:Redis 是"桌上抽屉",把热数据放最顺手的地方。这一篇把理论落地——给项目加缓存层,并实测加缓存前后的速度差。
一、待办应用哪里值得缓存
先判断:什么数据"读得多、变化少、丢了能重建"(16 篇的标准)?对你的待办应用:
| 数据 | 读的频率 | 值得缓存? |
|---|---|---|
| 待办列表 | 每次打开都读 | ✅ 最值得 |
| 待办总数/统计 | 每次都要算 | ✅ 值得 |
| 单条待办详情 | 偶尔 | 看情况 |
| 用户输入的内容 | 写操作 | ❌ 不缓存 |
经验:新手别什么都缓存——个人项目先缓存最"重"的一个(待办列表),感受效果,别一上来搞全家桶(16 篇:先量后缓)。
二、让 AI 加 Redis 缓存层
需求模板(接着 25 篇的部署对话说):
"我的待办应用是 Flask + SQLite,已用 docker-compose 部署。现在加 Redis 缓存:①docker-compose 里加一个 redis 服务 ②读取待办列表时先查 Redis,没有再从 SQLite 查并写入 Redis(设 60 秒过期)③新增/修改/删除待办时,删掉对应的 Redis 缓存。请先讲思路,再改代码,别动其它功能。"
AI 会做什么:
- compose 加
redis服务(18 篇全家桶)。 - 代码里加"先查缓存 → 没命中查库 → 写回缓存"(16 篇的缓存读法)。
- 写操作时删缓存(16 篇"先更库再删缓存")。
你要检查(22 篇④验证):
- compose 里 redis 服务端口映射对不对。
- 缓存逻辑:读先查缓存、写删缓存——这两条在不在。
经验:让 AI 解释一次"读和写各走什么流程"——讲得清楚,缓存逻辑就是对的。
三、缓存怎么和数据库同步(落地 16 篇)
16 篇给了三招,你的待办应用用"TTL + 删缓存"组合:
| 操作 | 做法 |
|---|---|
| 读取 | 先查 Redis → 没有 → 查 SQLite → 写回 Redis(60 秒过期) |
| 新增/修改/删除 | 操作完删掉对应缓存(下次读取自动重建) |
| 缓存失效 | 60 秒自动过期,或手动删除——数据库永远是"真身" |
为什么用这个组合:TTL 保证缓存不会永远旧(16 篇:别用永不过期的缓存);写时删缓存保证"改完马上能看到新的"(删了下次读就重建)。
四、缓存失效了怎么办(降级)
Redis 挂了、缓存删了、过期了——程序要能直接查数据库(16 篇:缓存降级)。
检查标准:把 Redis 容器停掉(docker stop redis),你的应用还能用吗?——应该还能用(慢一点,但功能正常)。如果 Redis 一停应用就崩,说明缓存逻辑写错了(把 Redis 当成了唯一数据源)。
经验:"拔掉 Redis 应用还能跑"是加缓存的金标准——缓存是加速器,不是命根子(16 篇)。
五、实测:加缓存前后快多少
加完缓存,用数据说话。两个办法测:
办法一:浏览器 Network 面板(最快)
- F12 → Network 面板。
- 刷新页面两次:第一次(未命中缓存)看耗时,第二次(命中缓存)看耗时。
- 对比"请求时间"——命中缓存那次应该明显更快。
办法二:后端打印耗时(更直观)
让 AI 在读取接口里加一行打印:查库耗时 vs 缓存耗时。
# 示例:接口里打印耗时(AI 会帮你加)
print("从缓存读取,耗时:", 耗时)
# 或 print("从数据库读取,耗时:", 耗时)
经验:个人项目的数据量下,速度差可能不明显——这是正常的!缓存的意义在于"访问量上来后不让数据库成为瓶颈"。你实测一次流程、看懂"命中缓存 → 不查库"的逻辑,这个技能就真的会了。
六、避坑清单
- Redis 别当唯一存储:主数据永远在 SQLite/MySQL,Redis 只是副本(16 篇)。
- 别缓存不该缓存的:实时性要求高的数据(余额、库存)不缓存(16 篇)。
- 连接信息放环境变量:Redis 地址、密码别硬编码(15 篇的密码纪律),compose 里用环境变量传。
- 防雪崩简单版:缓存过期时间加个随机值(如 60±10 秒),避免大量 key 同时过期(16 篇雪崩)。
- "拔掉 Redis 应用还能跑":加缓存后的验收金标准。
总结
- 先判断再缓存:待办列表这种"读多写少"最值得;新手先缓存一个,别搞全家桶。
- 让 AI 加缓存:compose 加 redis 服务 + 读先查缓存 + 写删缓存;检查"读写两条流程"。
- 同步策略:TTL(60 秒)+ 写时删缓存——数据库永远是真身。
- 降级:Redis 挂了应用还能跑,才是正确姿势。
- 实测:Network 面板对比两次刷新耗时;数据量小时差别不明显是正常的,技能学到才是关键。
- 避坑:别当唯一存储、别缓存实时数据、连接信息放环境变量、TTL 加随机值、拔 Redis 验收。
10 分钟小任务:让 AI 加好 Redis 缓存层,然后做三件事:①检查读写两条缓存逻辑 ②停掉 Redis 容器,确认应用还能用(金标准)③用 Network 面板对比两次刷新的耗时。下一篇,学一套保命技能:项目挂了怎么办。
下一篇:项目挂了怎么办?一套万能排查流程。
