第一章:缓存是个啥?为啥我的Django网站需要它?
想象一下,你开了一家特别火的奶茶店。
- 没缓存的情况:每个顾客点单,你都得跑去后面的仓库,翻开厚厚的库存本,查一下“珍珠还有多少?”“奶盖够不够?”,然后再跑回来告诉顾客。下一个顾客点单,哪怕是一模一样的“波波奶茶”,你还得再跑一趟仓库……一天下来,腿跑断了,顾客也等得不耐烦了。
- 有缓存的情况:你在柜台放了个小白板(缓存)。第一个顾客点“波波奶茶”,你跑去仓库查了,然后不仅在系统里扣了库存,还在小白板上写下:“波波奶茶 -> 有货,配方是XXX”。下一个顾客再点,你都不用去仓库,直接瞅一眼小白板就告诉他:“有!马上做!” 效率直接拉满。
对应到咱们的Django网站:
- 仓库的库存本 = 你的数据库。
- 跑去仓库查库存 = 一次数据库查询。
- 小白板 = 缓存。
- 瞅一眼小白板 = 一次极快的缓存读取。
每次用户访问你的页面,视图函数可能都要执行一堆复杂的数据库查询、模板渲染等计算。如果这个页面内容不常变化(比如文章详情、商品列表),每次都这么折腾数据库,数据库压力大,用户等待时间也长。缓存,就是把这次计算的结果“记”下来,下次直接用这个“笔记”,省去重复劳动。
所以,用缓存的核心目的就俩:
- 提升用户体验:页面加载快了,用户爽了。
- 减轻服务器负担:数据库查询少了,服务器能服务更多人,更稳定。
第二章:Django的“小白板”藏在哪?——设置缓存后端
Django的缓存系统非常强大,它允许你把“小白板”(缓存数据)放在不同的地方,这些地方就叫 缓存后端。我们来看看最常用的几块“小白板”。
在项目的 settings.py 文件中,有一个 CACHES 配置项,这就是缓存的总指挥部。
1. 开发调试的“临时小白板”:内存缓存(LocMemCache)
这是最简单的一种,直接把缓存存在当前服务进程的内存里。注意:开发调试好用,生产环境千万别用!
# settings.py
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



