django缓存

1 缓存的类型

1.1 数据库缓存

CACHES = {
	'default': {
		'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
		'LOCATION': 'my_cache_table',

1.2 文件缓存

CACHES = {
	'default': {
		'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
		'LOCATION': '/var/tmp/django_cache',  # 这个是文件夹的路径
		#'LOCATION': 'c:\foo\bar',  # windows下的示例
	}
}

1.3 内存缓存

CACHES = {
	'default': {
		'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
		'LOCATION': 'unique-snowflake'
	}
}

2 缓存的使用

2.1前端混合开发缓存的使用

-缓存的位置,通过配置文件来操作(以文件为例)
-缓存的粒度:
	-全站缓存
    	中间件
        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})
    	
    -页面局部缓存
    	{% load cache %}
        {% cache 5 'name' %}  # 5表示5s钟,name是唯一key值
         {{ ctime }}
        {% endcache %}

2.2 前后端分离缓存的使用

- 如何使用
    from django.core.cache import cache
    cache.set('key',value可以是任意数据类型)
    cache.get('key')
-应用场景:
	-第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来
    -后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存
posted @ 2022-07-23 12:41  mress  阅读(78)  评论(0)    收藏  举报