Django学习-缓存

Django缓存


概念

​ 由于每次对*(关系型)*数据库进行查询时,需要进行复杂的查询操作,浪费了很多的时间,缓存将经常需要查询的内容单独存储,可提高响应速度。

使用

​ 在Django中使用缓存,需要在settings.py文件中进行配置

# 可以配置多个缓存配置
# 例如可以为应用 “user” 单独配置缓存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.DatabaseCache',
        'LOCATION': 'my_cache_table',
        'TIMEOUT': 300,  # 缓存保存时间  单位秒  默认值为300
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 缓存最大数据条数
            'CULL_FREQUENCY': 2,  # 缓存条数达到最大值时,删除1/x的缓存数据
        }
    }
    # 为应用 “user” 单独配置
    'user': {
        'BACKEND': 'django.core.cache.backends.DatabaseCache',
        'LOCATION': 'my_cache_table',
        'TIMEOUT': 300,  # 缓存保存时间  单位秒  默认值为300
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 缓存最大数据条数
            'CULL_FREQUENCY': 2,  # 缓存条数达到最大值时,删除1/x的缓存数据
        }
    }
}

整体缓存策略

概念

​ 当请求到达服务器视图函数时,试图函数将请求内容拿到后全部放入缓存数据库,等待下次访问,优先查询缓存数据库,如果有缓存,则将全部缓存返回给浏览器。

用法

​ 使用装饰器修饰视图函数

​ 装饰器名称@cache_page(time)

​ 参数代表过期时间

​ 需要导入装饰器

from django.views.decorators.cache import cache_page

局部缓存策略

概念

​ 可手动创建cache以及删除cache,进一步提高响应速度

用法

先引入cache对象

方式一:使用cache[‘CACHE配置key’]导入具体对象
from django.core.cache import caches
cache1 = caches['myalias']
cache2 = caches['myalias_2']
方式二:

from django.core.cache import cache

相当于直接引入CACHES配置中的’default’项

方法

  1. cache.set(key, value, timeout)- 存储缓存

    key: 缓存的key,字符串类型

    value: Python对象

    timeout: 缓存存储时间(s),默认为CACHES中的TIMEOUT值

    返回值: None

  2. cache.get(key)- 获取缓存

    key: 缓存的key

    返回值: 为key的具体值,如果没有数据,则返回None

  3. cache.add(key, value)- 存储缓存,只在key不存在时生效

    返回值: True[存储成功] or False[存储失败]

  4. cache.get_or_set(key, value, timeout)- 如果未获取到数据,则执行set操作

    返回值: value

  5. cache.set_many(dict, timeout)- 批量存储缓存

    dict: key和value 的字典

    timeout: 存储时间(s)

    返回值: 插入不成功的key的数组

  6. cache.get_many(key_list)- 批量获取缓存数据

    key_list: 包含key得的数组

    返回值: 取到的key和value的字典

  7. cache.delete(key)- 删除key的缓存数据

    返回值: None

  8. cache.delete_many(key_list)- 批量删除

    返回值: None

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值