Skip to content

Latest commit

 

History

History
139 lines (90 loc) · 2.61 KB

djangocache.md

File metadata and controls

139 lines (90 loc) · 2.61 KB

Cache

https://docs.djangoproject.com/zh-hans/2.0/topics/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 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做缓存