Django缓存系统
为什么要做django缓存?
在动态网站中,用户每次请求一个页面,服务器都会执行以下操作:查询数据库,渲染模板,执行业务逻辑,最后生成用户可查看的页面。
这会消耗大量的资源,当访问用户量非常大时,就要考虑这个问题了。
缓存就是为了防止重复计算,把那些消耗了大量资源的结果保存起来,下次访问时就不用再次计算。
Django缓存系统:
Django提供了自己的缓存系统,可以自己保存动态网页,为了避免在需要的时候重新计算。
Django缓存架构可以缓存:特定视图的输出,模板的一部分,整个网站。
在Django项目中使用缓存:
在数据库中设置缓存:
配置项目的settings.py文件,添加代码:
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.db.DatabaseCache','LOCATION': 'my_table_name',}
}
创建缓存表
python manage.py createcachetable
在文件系统中设置缓存:
配置项目的settings.py文件,添加代码:
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache','LOCATION': '/var/tmp/django_cache',}
}
在本地内存中设置缓存:
配置项目的settings.py文件,添加代码:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake'
}
}
缓存整个网站:
缓存整个网站可以通过编辑项目settings.py的MIDDLEWARE_CLASSES选项来完成,注意顺序,先更新,再获取。
MIDDLEWARE_CLASSES = ('django.middleware.cache.UpdateCacheMiddleware','django.middleware.common.CommonMiddleware','django.middleware.cache.FetchFromCacheMiddleware',
)
还有一些通用设置:
CACHE_MIDDLEWARE_ALIAS = 'default' #用来存储的缓存别名
CACHE_MIDDLEWARE_SECONDS = 0 #所有页面默认缓存时间,默认600
CACHE_MIDDLEWARE_KEY_PREFIX ='www.demo.com' #关键的前缀,当多个站点使用同一个配置的时候,
这个可以设置可以避免发生冲突,一般设置为网站域名
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = False #那么只有匿名的请求会被缓存,这是一个禁用缓存非匿
名用户页面的最简单的做法,注意确保已经启用了Django用户认证中间件
Django缓存系统相关推荐
- Django 缓存系统
Django 是动态网站,一般来说需要实时地生成访问的网页,展示给访问者,这样,内容可以随时变化,但是从数据库读多次把所需要的数据取出来,要比从内存或者硬盘等一次读出来 付出的成本大很多. 缓存系统工 ...
- Django(缓存系统)
什么是缓存Cache 缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式.一般用来存储临时数据,常用介质的是读取速度很快的内存.一般来说从数据库多次把所需要的数据提取出来,要比 ...
- Django 缓存6.2
缓存 对于中等流量的网站来说,尽可能地减少开销是必要的.缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源 Django自带了一个健壮的缓存系统来保存动态页面,避免对 ...
- django 1.8 官方文档翻译:使用Django认证系统
使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...
- django 1.8 官方文档翻译:13-1-2 使用Django认证系统
使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...
- Django缓存机制
Django缓存机制三个粒度:1 全站缓存 settings.py 全局配置文件用中间件:MIDDLEWARE = [# 'django.middleware.cache.UpdateCacheMid ...
- Memcached 缓存系统的-介绍、安装以及应用
一. memcached 是什么? memcached is a high-performance, distributed memory object caching system, generic ...
- 分布式缓存系统Memcached简介与实践
缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵 ...
- 千万级并发!如何设计一个多级缓存系统?
作者:不清不慎,目前在杭州蘑菇街公司任职,Java大数据开发工程师一枚,热爱研究开源技术! 架构师社区合伙人! 首先我们需要明白,什么是一个多级缓存系统,它有什么用.所谓多级缓存系统,就是指在一个系统 ...
最新文章
- C++ primer第五版随笔--2015年1月6日
- springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量
- Nutshell中的Java 8语言功能-第2部分
- 一篇文章搞懂数据仓库:数据仓库规范设计
- oracle数据库dca,有关Oracle数据库
- Hello,Views(五)自动填充文字AutoCompleteTextView(附源码)
- I²C那点事儿(一)
- 实战HTML:模拟简书首页静态实现
- pytorch学习6:norm函数--范数的理解和计算
- 步进电机基础(5.9)-步进电机的驱动与控制-三相步进电机的驱动电路
- android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
- html显示doc内容,doc文件怎么打开?doc是什么文件?
- 15K的前端应届毕业生,就因为掌握了这些知识点!(前端企业级开发必备)
- ZN-M160G光猫 Telnet打不开
- 使用Python将PDF转换为WORD
- 我 Spring Boot 贼 6,还有必要学 SpringMVC 么?
- python编译型语言和解释型语言
- 50部经典影片,你看过哪些
- PicGo配置(gitee)
- 集群中zeus平台的变更