为什么要做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缓存系统相关推荐

  1. Django 缓存系统

    Django 是动态网站,一般来说需要实时地生成访问的网页,展示给访问者,这样,内容可以随时变化,但是从数据库读多次把所需要的数据取出来,要比从内存或者硬盘等一次读出来 付出的成本大很多. 缓存系统工 ...

  2. Django(缓存系统)

    什么是缓存Cache 缓存是一类可以更快的读取数据的介质统称,也指其它可以加快数据读取的存储方式.一般用来存储临时数据,常用介质的是读取速度很快的内存.一般来说从数据库多次把所需要的数据提取出来,要比 ...

  3. Django 缓存6.2

    缓存 对于中等流量的网站来说,尽可能地减少开销是必要的.缓存数据就是为了保存那些需要很多计算资源的结果,这样的话就不必在下次重复消耗计算资源 Django自带了一个健壮的缓存系统来保存动态页面,避免对 ...

  4. django 1.8 官方文档翻译:使用Django认证系统

    使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...

  5. django 1.8 官方文档翻译:13-1-2 使用Django认证系统

    使用Django认证系统 这篇文档解释默认配置下Django认证系统的使用.这些配置已经逐步可以满足大部分常见项目对的需要,可以处理范围非常广泛的任务,且具有一套细致的密码和权限实现.对于需要与默认配 ...

  6. Django缓存机制

    Django缓存机制三个粒度:1 全站缓存 settings.py 全局配置文件用中间件:MIDDLEWARE = [# 'django.middleware.cache.UpdateCacheMid ...

  7. Memcached 缓存系统的-介绍、安装以及应用

    一. memcached 是什么? memcached is a high-performance, distributed memory object caching system, generic ...

  8. 分布式缓存系统Memcached简介与实践

    缘起: 在数据驱动的web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的虽然已经可以实现对页面局部进行缓存,但还是不够灵 ...

  9. 千万级并发!如何设计一个多级缓存系统?

    作者:不清不慎,目前在杭州蘑菇街公司任职,Java大数据开发工程师一枚,热爱研究开源技术! 架构师社区合伙人! 首先我们需要明白,什么是一个多级缓存系统,它有什么用.所谓多级缓存系统,就是指在一个系统 ...

最新文章

  1. C++ primer第五版随笔--2015年1月6日
  2. springboot yml怎么建常量_【Java】SpringBoot 中从application.yml中获取自定义常量
  3. Nutshell中的Java 8语言功能-第2部分
  4. 一篇文章搞懂数据仓库:数据仓库规范设计
  5. oracle数据库dca,有关Oracle数据库
  6. Hello,Views(五)自动填充文字AutoCompleteTextView(附源码)
  7. I²C那点事儿(一)
  8. 实战HTML:模拟简书首页静态实现
  9. pytorch学习6:norm函数--范数的理解和计算
  10. 步进电机基础(5.9)-步进电机的驱动与控制-三相步进电机的驱动电路
  11. android手机进入动画,安卓用户必读,如何进入手机开发者模式,以及你必用的功能!...
  12. html显示doc内容,doc文件怎么打开?doc是什么文件?
  13. 15K的前端应届毕业生,就因为掌握了这些知识点!(前端企业级开发必备)
  14. ZN-M160G光猫 Telnet打不开
  15. 使用Python将PDF转换为WORD
  16. 我 Spring Boot 贼 6,还有必要学 SpringMVC 么?
  17. python编译型语言和解释型语言
  18. 50部经典影片,你看过哪些
  19. PicGo配置(gitee)
  20. 集群中zeus平台的变更

热门文章

  1. requests下载文件
  2. 2015年12月6日
  3. ESD静电防范常见问题及解决方案
  4. 电压、电流表使用方法
  5. 如何判断是否是ie浏览器和版本
  6. B1/gsm功放板下行测试流程
  7. mysql 5.5 cmake 对应_MySQL5.5编译工具configure向cmake过渡指南
  8. PDF中图片表格可以转成Excel表格吗?
  9. 成功预测校园暴力发生概率的AI,会是大雄的哆啦A梦吗?
  10. 电脑右下角扬声器(小喇叭)图标打红叉