不为成仙,只为在这红尘中等你回来。

您现在的位置是:网站首页>>Django

Django cache

2019年12月4日 16:24 | 分类:Django | 标签: Django

缓存框架的核心目标

  • 较少的代码
    • 缓存应该尽可能快
    • 因此围绕缓存后端的所有框架代码应该保持在绝对最小值,特别是对于获取操作
  • 一致性
    • 缓存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 caches
    cache = 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做缓存

来源

Cache