微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Django之缓存

<div id="cnblogs_post_body" class="blogpost-body">
<p class="title">一、缓存

由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者memcache中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。

Django中提供了6种缓存方式:

  • 开发调试
  • 内存
  • 文件
  • 数据库
  • Memcache缓存(python-memcached模块)
  • Memcache缓存(pylibmc模块)

1、配置

a、开发调试

CACHES = : , : 300,默认300,None表示永不过期,0表示立即过期) : 300,默认300) : 3,默认3) : ,默认空) : 1,默认1) 函数生成key的函数函数生成为:【前缀:版本:key】) 自定义key %s:%s:%s % key_func default_key_func

b、内存

内容保存至内存的变量中 CACHES = : cmem.LocmemCache : Nowflake

c、文件

内容保存至文件 CACHES = : :

d、数据库

内容保存至数据库 CACHES = : : ,数据库表

e、Memcache缓存(python-memcached模块)

CACHES = : : CACHES = : : .sock CACHES = : }

f、Memcache缓存(pylibmc模块)

libmc模块连接memcache CACHES = : libmCCache CACHES = : libmCCache : .sock CACHES = : libmCCache }

2、应用

a. 全站使用

内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存 MIDDLEWARE = CACHE_MIDDLEWARE_ALIAS = CACHE_MIDDLEWARE_SECONDS = CACHE_MIDDLEWARE_KEY_PREFIX =

b.单独视图缓存

django.views.decorators.cache @cache_page(60 * 15 django.views.decorators.cache urlpatterns = url(r,cache_page(60 * 15 ]

c、局部视图使用

{% load cache % {% cache 5000 缓存key % 内容 {% endcache %}

更多:goproject.com/en/1.9/topics/cache/" target="_blank">猛击这里

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐