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'  #获取缓存
					

  

原文地址:https://www.cnblogs.com/crazytao/p/7787973.html