Django是动态网站,用户每一次请求页面,服务器都会执行以下操作:数据库查询、渲染模版、执行业务逻辑,最后生成用户可查看的页面。当访问量比较大的时候,会消耗掉大量的资源,这时候就会考虑到缓存问题。

缓存系统的工作原理:

对于给定的网址,尝试从缓存中找到网址,如果页面在缓存中,直接返回缓存的页面,如果缓存中没有,一系列操作(比如查数据库)后,保存生成的页面内容到缓存系统以供下一次使用,然后返回生成的页面内容。

下面是一些伪代码,诠释了使用缓存之后,页面的访问情况:

given a URL, try finding that page in the cache
if the page is in the cache:
return the cached page
else:
generate the page
save the generated page in the cache (for next time)
return the generated page

缓存设置:

缓存系统需要少量的设置。 也就是说,你必须告诉它你的缓存数据应该存在哪里; 无论是在数据库中,在文件系统上还是直接在内存中。 这是影响缓存性能的重要决定。您的缓存首选项位于设置文件的CACHES设置文件中。

CACHES = {
'default': {
'BACKEND': 'xx ',
'LOCATION': 'xx',
}
}

数据库缓存是Django缓存中的一种,它将缓存数据存到数据库中。将数据库用作缓存后端:

  • 将BACKEND设置为django.core.cache.backends.db.DatabaseCache

  • 将LOCATION设置为表名,即数据库表的名称。 这个名称可以是任何你想要的,只要它是一个尚未在数据库中使用的有效表名即可。

在这个例子中,缓存表的名字是my_cache_table:

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

在使用数据库缓存之前,您必须使用以下命令创建缓存表:

python manage.py createcachetable 【my_cache_table】

未完待续。

最新文章

  1. Nginx 遇到的问题
  2. 【转载】ubuntu和debian环境下无法挂载vmware虚拟机共享目录的解决办法
  3. ElasticSearch实战使用
  4. Less 导入命令 @import
  5. lintcode 中等题:Singleton number II 落单的数 II
  6. PHP提取身份证号码中的生日并验证是否成年的函数
  7. 【HDOJ】2782 The Worm Turns
  8. poj2387-Til the Cows Come Home dijkstra获得水的问题
  9. Spring基于 Annotation 的简单介绍
  10. FasfDFS整合Java实现文件上传下载
  11. HTTP常用方法
  12. java中,字符串类型的时间数据怎样转换成date类型。
  13. Mysql的隔离级别
  14. POJ 2289 Jamie's Contact Groups 【二分】+【多重匹配】(模板题)
  15. 代码d17
  16. vue2.0 项目搭建 和vue 2.0 electron 项目搭建
  17. python路径相关操作
  18. Servlet交互与JSP
  19. C++(初学讲解):判断倍数
  20. php AES cbc模式 pkcs7 128位加密解密(微信小程序)

热门文章

  1. C# Json 和对象的相互转换
  2. fatal error: No such file or directory
  3. 将mnist获得的数据还原成图片形式
  4. Java程序国际化学习代码一
  5. dll导出函数的两种方式的比较
  6. 【原创】Mac book pro入手后,需要做哪些才能开始开展自动化测试工作
  7. 记录2-在mac上安装ubuntu 16.04 LTS
  8. RIDE创建工程和测试套件和用例--书本介绍的入门方法,自己整理实践下
  9. 【Python爬虫】01:网络爬虫--规则
  10. C# VS2017的.net Core1.0项目在版本升级为2.0后找不到程序集的处理办法