Django----缓存
缓存
1.开发调试
CACHES = {
'default':{
'BACKEND':'django.core.cache.backends.dummy.DummyCache', #引擎
'TIMEOUT':300, #超时时间
'OPTIONS':{
'MAX_ENTRIES':300, #缓存最大个数
'CULL_FREQUENCY':3, #剔除缓存个数
},
'KEY_PREFIX':'', #缓存key的前缀(默认空)
'VERSION':1, #缓存key的版本(默认1)
'KEY_FUNCTION':函数名 #生成key的函数
#缓存中默认生成函数key的组合方式:key_prefix:version:key
# 前缀: 版本: key
}
}
2.内存
CACHES = {
'default':{
'BACKEND':'django.core.cache.backends.locmem.LocMemCaChe', #引擎
'LOCATION':'unique-anowflake' #储存到内存中的全局变量名
'TIMEOUT':300 #超时时间
'OPTIONS':{
'MAX_ENTRIES':300, #缓存最大个数
'CULL_FREQUENCY':3, #剔除缓存个数
}
'KEY_PREFIX':'',
'VERSION':1,
'KEY_FUNCTION':
#缓存中key的组合方式:key_prefix:version:key
}
}
3.文件
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.filebased.FileBasedCache', #引擎
'LOCATION':'/var/tmp/django_cache' #储存路径
'TIMEOUT':300 #超时时间
'OPTIONS':{
'MAX_ENTRIES':300, #缓存最大个数
'CULL_FREQUENCY':3, #剔除缓存个数
}
'KEY_PREFIX':'',
'VERSION':1,
'KEY_FUNCTION':
#缓存中key的组合方式:key_prefix:version:key
}
}
4.数据库
CACHES = {
'default':{
'BACKEND':'django.core.cache.backends.DatabaseCache', #引擎
'LOCATION':'my_cache_table' #数据库表
'TIMEOUT':300 #超时时间
'OPTIONS':{
'MAX_ENTRIES':300, #缓存最大个数
'CULL_FREQUENCY':3, #剔除缓存个数
}
'KEY_PREFIX':'',
'VERSION':1,
'KEY_FUNCTION':
#缓存中key的组合方式:key_prefix:versionfunction
}
}
# 执行创建表命令 python manage.py createcachetable
5.Memcache缓存(python-memcached模块)
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.MemcachedCache', #引擎
'LOCATION':'172.18.43.22:11211'
}
}
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.MemcachedCache', #引擎
'LOCATION':'/tmp/memcached.sock'
}
}
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.MemcachedCache', #引擎
'LOCATION':[('172.18.43.22:11211',10),
('172.18.43.23:11211',15),] #集群,后面的数值是权重
}
}
5.1 Memcache缓存(pylibmc模板)
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.PyLibMCCache', #引擎
'LOCATION':'172.18.43.22:11211'
}
}
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.MemcachedCache', #引擎
'LOCATION':'/tmp/memcached.sock'
}
}
CACHES = {
'default':{
'BACKEND':'django.core.core.cache.backends.memcached.MemcachedCache', #引擎
'LOCATION':[('172.18.43.22:11211',10),
('172.18.43.23:11211',15),] #集群,后面的数值是权重
}
}
使用
1. 对单独views函数做缓存(视图整体缓存)
from djando.views.decorators.cache import cache_page @caache_page(10) #缓存10秒 def index(request):
2. 局部视图缓存
#首先:
{% load cache %}
#然后:
{% cache 10 c1 %} #cache 缓存时间 缓存key
<h1>{{ ctime }}</h1>
{% endcache %}
3. 全站缓存
#使用中间件: 'django.middleware.cache.UpdateCacheMiddleware' #写入缓存 '其他中间件' 'django.middleware.cache.FetchFromCacheMiddleware' #获取缓存

浙公网安备 33010602011771号