zoukankan      html  css  js  c++  java
  • django-django的六种缓存设置

    1、Django缓存作用


    参考博客:https://www.cnblogs.com/xiaonq/p/7978402.html#i6

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

    2、Django中提供了6种缓存方式


    • 1.开发调试缓存
    # 开发调试缓存(虽然配置上,但实际没有缓存,还是到数据库取)
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.dummy.DummyCache',  # 引擎
    
            #注: 下面这些参数时公用的,五种缓存都可以使用
            'TIMEOUT': 300,           # 缓存超时时间(默认300,None表示永不过期,0表示立即过期)
            'OPTIONS':{
                'MAX_ENTRIES': 300,   # 最大缓存个数(默认300)
                'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例(3就是1/3)
            },
        }
    }
    
    
    • 2.内存缓存
    # 注:内存缓存本质上就是在内存中维护一个字典,所存储的形式就是字典的键值对组合
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
            'LOCATION': 'unique-snowflake',     #这个参数指定变量名必须唯一
        }
    }
    
    
    • 3.文件缓存
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
            'LOCATION': os.path.join(BASE_DIR,'cache'),  #缓存内容存放的文件夹路径
        }
    }
    
    
    • 4.数据库缓存
    # 注:执行创建表命令 python manage.py createcachetable
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
            'LOCATION': 'my_cache_table', # 数据库表名(名字是自己取的)
        }
    }
    
    
    
    • 5: Memcache缓存 两种
    # 注:Memcache缓存有两个模块:python-memcached模块、 pylibmc模块
    
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',          #使用ip加端口连接memcached
        }
    }
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': 'unix:/tmp/memcached.sock',     #以文件的形式连本地memcached
        }
    }
    
    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': [               # memcached天生支持集群
                #1 均衡分配
                '172.19.26.240:11211',
                '172.19.26.242:11211',
                #2 调整权重(权重和请求比例成正比)
                ('172.19.26.240:11211',1),
                ('172.19.26.242:11211',10),
            ]
        }
    }
    
    
    # 注: pylibmc模块只改变上面'BACKEND'配置为下面样式即可
    # 'BACKEND': 'django.core.cache.backends.memcached.PyLibMCCache',
    
    
    
    从小白到大神的蜕变~~
  • 相关阅读:
    HTTP 错误 403.6
    NPOI-WebForm_Excel导入与导出
    一触即发 App启动优化最佳实践
    如何查看手机是硬件加密还是软件加密
    Android EidtText 光标的使用和设置
    jd-gui报错INTERNAL ERROR 解决办法
    你应该知道的那些Android小经验
    如何分析解决Android ANR
    Android延时执行调用的几种方法
    转:各种Adapter的用法
  • 原文地址:https://www.cnblogs.com/tjw-bk/p/13775435.html
Copyright © 2011-2022 走看看