• 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',
    
    
    
    从小白到大神的蜕变~~
  • 相关阅读:
    SHA1 VS RSA: what's the difference between them?
    TLS Security
    TLS Handshake Protocol
    Building Cython code
    Getting started with JupyterLab
    Installing Cython
    【转贴】libcrypto.so.10丢失导致sshd无法运行解决方案
    [Typescript] Function Overloads
    [Typescript] Function Generics
    [Typescript] Discriminated (Tagged) Unions
  • 原文地址:https://www.cnblogs.com/tjw-bk/p/13775435.html
Copyright © 2020-2023  润新知