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。
下一篇: 复习二:关于const小节