Django项目总结:Cache

Cache

【缓存框架的核心目标】

-- 较少的代码

  -- 缓存应该尽可能快

  --因此围绕缓存后端的所有框架代码应该保持在绝对最小值,特别是对于获取操作

-- 一致性

  -- 缓存API应该是提供跨越不同缓存后端的一致接口

-- 可扩展性

  -- 基于开发人员的需求,缓存API应该可以在应用程序级别扩展

 

【缓存】

-- django内置了缓存框架,并提供了几种常用的缓存

  -- 基于Memcached缓存

  -- 使用数据库进行缓存

  -- 使用文件系统进行缓存

  -- 使用本地内存进行缓存

  -- 提供缓存扩展接口

 

【缓存配置】

1.创建缓存表

python manage.py createcachetable [table_name]

2.缓存配置

CACHES = {    

  'default': {        

    'BACKEND': 'django.core.cache.backends.db.DatabaseCache',        

    'LOCATION': 'my_cache_table',        

    'TIMEOUT': '60',        

    'OPTIONS': {             

      'MAX_ENTRIES': '300',        

    },        

    'KEY_PREFIX': 'rock',        

    'VERSION': '1',    

} }

 

【缓存使用】

-- 在视图中使用(使用最多的场景)

-- @cache_page()(装饰器)

  -- time 秒 60*5 缓存五分钟

  -- cache 缓存配置, 默认default,

  -- key_prefix 前置字符串

 

 

 

【缓存底层】

-- 获取cache(多个缓存)

  -- from django.core.cache import cachescache = caches['cache_name']

-- 获取cache(单个缓存)

  -- from django.core.cache import cache

-- 缓存操作

  -- cache.set

    -- key

    -- value

    -- timeout

  -- get

  -- add

  -- get_or _set

  -- get_many

  -- set_many

  -- delete

  -- delete_many

  -- clear

  -- incr 增加

    -- incr(key, value) key对应的值上添加 value

  -- decr 减少

    -- decr(key, value) key对应的值上减少value

    -- 如果value不写,默认变更为1

 

 

 

【使用Redis做缓存】

-- 常见的有两个实现

  -- django-redis

    -- http://django-redis-chs.readthedocs.io/zh_CN/latest/#django

  -- django-redis-cache

    -- https://pypi.python.org/pypi/django-redis-cache/

-- 配置和内置的缓存配置基本一致

 

CACHES = {
    'default': {
        'BACKEND': 'django_redis.cache.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
        },
        'TIMEOUT': 60 * 5,
    }
}

 

 

-- 用法和内置缓存使用一样

 

 

 

 

 

Django支持多缓存

 

 

 

第一种:设置redis

 

 

 

第二种:装饰符

 

posted @ 2020-07-20 23:02  颗粒成仓  阅读(196)  评论(0编辑  收藏  举报