django 使用redis做缓存处理的基本操作

首先    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_*")




猜你喜欢

转载自blog.csdn.net/qq_21570029/article/details/79760178