django缓存cache
前后端混合开发使用缓存
前后端混合开发模式下,缓存 对于大量的静态页面,可以使用缓存的方式将平台页面缓存起来,下次再被访问时可以直接从缓存中那,不用在频繁的操作数据库,较少服务器压力提供服务并发量。
缓存的位置:可以缓存到数据库、文件、redis缓存数据库等,参考博客
缓存的粒度
# 全站缓存,中间件,
- 放数据在第一个中间件的process_response()中
- 取数据在最后一个中间件的process_request()中
# 全站缓存配置参数
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware',
# 其他中间件
'django.middleware.cache.FetchFromCacheMiddleware',
]
CACHE_MIDDLEWARE_SECONDS=10 # 全站缓存时间
# 单页面缓存,在视图函数上加装饰器
from django.views.decorators.cache import cache_page
@cache_page(5) # 缓存5s
def test_cache(request):
import time
ctime=time.time()
return render(request,'index.html',context={'ctime':ctime})
# 页面局部缓存,cache标签
{% load cache %}
{% cache 5 'name' %} # 5表示5s钟,name是唯一key值
{{ ctime }}
{% endcache %}
前后端分离情况下使用缓存
- 如何使用
from django.core.cache import cache
cache.set('key',value可以是任意数据类型)
cache.get('key')
-应用场景:
-第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来
-后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存