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')
-应用场景:
    -第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来
    -后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存
posted @ 2020-07-16 09:48  the3times  阅读(237)  评论(0)    收藏  举报