Django 缓存

# 数据库缓存
CACHES = {
	'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'tbl_cache', # 数据表名称
        # 一下为默认值
        'TIMEOUT': 60, # 超时时间 60S, 默认为None,永不过期
        'KEY_PREFIX': '', # 键前缀
        'OPTIONS': {
            'MAX_ENTRIES': 1000, # 最大缓存记录量
            'CULL_FREQUENCY': 3 # 到达最大缓存记录量时,剔除缓存的数量
        }
    }
}

# 文件系统缓存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.filebased.FileBaseCache',
        'LOCATION': 'cache' # 文件保存路径
    }
}

# 本地缓存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake' # 存储器名称
    }
}

创建缓存表

python manage.yp createcachetable
from django.views.decorators.cache import cache_page
from django.core.cache import cache

@cache_page(timeout=10)
def index(request):
    # cache.set(key,value,timeout = DEFAULT_TIMEOUT,version = None)
    cache.set("key", "value", 30)
    # cache.get(key,default=None,version=None)
    cache.get("key")
    # 如果已经存在,则不重新设置
    # cache.add(key,value,timeout=DEFAULT_TIMEOUT,version=None)
    # 获取键对应的值,如果不存在,则设置新值。
    # cache.get_or_set(key,default,timeout=DEFAULT_TIMEOUT,version=None)
    # 一次性设置多个键对应的值
    cache.set_many({"a":1, "b": 2, "c": 3}, timeout=None)
    # 一次性获取多个键对应的值
    cache.get_many(["a", "b"], version=None)
    # 删除
    cache.delete(key)
    cache.delete_many(["a", "b"])
    cache.clear()
    # 设置新的过期时间
    # cache.touch(key, timeout=DEFAULT_TIMEOUT, version=None)
    # 不能保证原子的加减值操作
    # cache.incr(key, delta=1,version=None)
    # cache.decr(key, delta=1,version=None)
原文地址:https://www.cnblogs.com/iFanLiwei/p/13036707.html