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

      

  • 相关阅读:
    row_number() over(partition by的用法
    java基础之--动态代理
    Java中主要有一下三种类加载器;
    HBase基本shell命令
    IntelliJ IDE 基础经验备案 四-查找快捷键
    Docker:5 扩展学习之安装mysql并且将数据挂载到本地磁盘
    Docker:4 扩展学习之修改docker容器配置
    nginx安装部署《简单版》
    Redis基础学习: 与外部交互的数据类型
    Redis基础学习: 内部数据结构
  • 原文地址:https://www.cnblogs.com/crazytao/p/7787973.html
Copyright © 2011-2022 走看看