欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

django chache 缓存

程序员文章站 2022-03-16 08:54:13
...

安装

网上有很多教程
自己只 pip 安装了 python-memcached
setting 中增加cache配置

# localhost
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }

教程

https://docs.djangoproject.com/zh-hans/3.0/topics/cache/

基本使用:

cache.get(key, default=None, version=None)
  • key 是一个字符串,value 可以任何 picklable 形式的 Python 对象。
  • default 默认参数。如果对象不在缓存中,将返回指定的值。
  • version 通过Django服务器生成的缓存键的默认版本号,有点类似与Redis的db

如果对象不在缓存中,cache.get() 将返回 None
建议不要在缓存中存储为 None 的值,因为你不能分辨你存储的 None 值还是因为缓存命中返回的 None 值。

cache.set(key, value, timeout=DEFAULT_TIMEOUT, version=None)
  • key 是一个字符串,
  • value 可以任何 picklable 形式的 Python 对象。
  • timeout 参数是可选的,默认为None 是 CACHES 中相应后端的 timeout 参数。它是值存在缓存里的秒数。timeout 设置为 None 时将永久缓存。timeout 为0将不缓存值。
  • version 通过Django服务器生成的缓存键的默认版本号,有点类似与Redis的db
cache.add(key, value, timeout=DEFAULT_TIMEOUT, version=None)

它与 set() 带有相同的参数,但如果指定的键已经存在,将不会尝试更新缓存

cache.delete(key, version=None)

显示地删除键,以清空特定对象的缓存

cache.clear()

删除缓存里的所有键

cache.touch(key, timeout=DEFAULT_TIMEOUT, version=None)

为键设置一个新的过期时间
成功 返回 True,否则返回 False。