Django缓存实战
学习使用Django内置缓存框架,配置缓存后端并实现视图缓存与片段缓存。 · 难度:入门 · +15XP
Django缓存简介
缓存是提升Web应用性能的关键技术。Django提供了一个灵活的缓存框架,支持多种后端:内存缓存(LocMemCache)、文件缓存、数据库缓存、Redis/Memcached等。缓存可以应用于全站、视图、模板片段甚至低层API。
配置缓存后端
在settings.py中配置缓存,以Redis为例:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient',
}
}
}视图缓存装饰器
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # 缓存15分钟
def my_view(request):
# ... 耗时操作
return render(request, 'template.html', context)
模板片段缓存
{% load cache %}
{% cache 500 sidebar %}
<!-- 耗时的sidebar内容 -->
{% endcache %}低层缓存API
from django.core.cache import cache
cache.set('my_key', 'my_value', timeout=300)
value = cache.get('my_key')
| 后端 | 适用场景 | 持久化 |
|---|---|---|
| LocMemCache | 开发/单进程 | 否 |
| Redis | 生产/分布式 | 是 |
| FileCache | 无Redis时 | 是 |
💡 练习提示:修改你的博客首页视图,添加@cache_page(60)装饰器,然后刷新页面两次,观察第二次是否更快。