首先 pip install django-redis依赖包
在django的settings下做缓存配置,这里设置使用redis数据库做缓存
#===================================系统缓存设置===================================================
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache", # 使用的数据库为redis
"LOCATION": "redis://localhost:6379/2", # redis缓存所在地址
#实现了客户端分片
#"LOCATION": [
# "redis://127.0.0.1:6379/1",
# "redis://127.0.0.1:6379/2",
#],
#redis://: 普通的 TCP 套接字连接
#rediss://: SSL 包裹的 TCP 套接字连接
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
#使用 json 序列化数据
#"SERIALIZER": "django_redis.serializers.json.JSONSerializer",
#实现了客户MEDIA_ROOT端分片
#"CLIENT_CLASS": "django_redis.client.ShardClient",
#密码
#"PASSWORD": "1352099"
}
}
}
然后在view.py里 导入 from django.core.cache import cache
设置缓存
# timeout 表示过期时间
# timeout=None 永不超时
cache.set("key", "value", timeout=None)
通过值 (value) 获取 ttl (time to live)
在 redis 中, 你可以获取任何 key 的 ttl,django-redis 也支持获取 ttl 的函数:
它返回: 0 key 不存在 (或已过期). None key 存在但没有设置过期. ttl 任何有超时设置的 key 的超时值. 以 keys 搜索过期:
from django.core.cache import cache
cache.set("key", "value", timeout=25)
cache.ttl("key")
25
cache.ttl("not-existent")
0
django-redis 支持使用全局通配符的方式来检索或者删除键.
使用通配符搜索的例子
cache.keys("foo_*") //查询
["foo_1", "foo_2"] // 结果
使用 delete_pattern 的例子 删除
cache.delete_pattern("foo_*")