zoukankan      html  css  js  c++  java
  • 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'  #获取缓存
    					
    

      

  • 相关阅读:
    Fastjson1.2.68 绕Autotype的一点总结
    MySQL外键约束冲突异常:com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (...)
    SO_REUSEADDR
    Live2d Test Env
    Mac上使用virtualenv配置Python虚拟环境
    Mac环境下替换pip源方法
    Mac上安装Python3教程
    【ASP.NET Core学习】使用JWT认证授权
    LeetCode 110. 平衡二叉树 | Python
    LeetCode 733. 图像渲染 | Python
  • 原文地址:https://www.cnblogs.com/crazytao/p/7787973.html
Copyright © 2011-2022 走看看