Django redis 应用

Posted 市丸银

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django redis 应用相关的知识,希望对你有一定的参考价值。

一、自定义连接池

与python中使用连接池一样(使用单例对象)

注意:每个视图函数都要有

conn = redis.Redis(connection_pool=POOL)

二、使用第三方模块(django-redis)

1、安装

pip3 install django-redis 

2、设置setting.py文件

CACHES = {
    "default": {
        "BACKEND": "django_redis.cache.RedisCache",
        "LOCATION": "redis://ip:6379",
        "OPTIONS": {
            "CLIENT_CLASS": "django_redis.client.DefaultClient",
            "CONNECTION_POOL_KWARGS": {"max_connections": 100},
            "PASSWORD": "密码",
        }
    }
}

3、使用

def index(request):
    # default setting的配置文件
    con = get_redis_connection(default)
    con.set(k1, v1)
    print(con.get(k1))    # b‘v1‘
    return HttpResponse(设置ok)

三、高级使用

1、全栈使用(中间件)

MIDDLEWARE = [
    django.middleware.cache.UpdateCacheMiddleware,
    其它中间件,          
    django.middleware.cache.FetchFromCacheMiddleware,
]

2、单独视图使用,优先级高于全局视图

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)
def my_view(request):
    ...

3、局部 template使用

a. 引入TemplateTag

    {% load cache %}

b. 使用缓存

    {% cache 5000 缓存key %}
        缓存内容
    {% endcache %}

 

以上是关于Django redis 应用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中显式重置模板片段缓存?

django 框架中应用 redis 集群

Redis实现分布式锁(设计模式应用实战)

Redis实现分布式锁(设计模式应用实战)

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段

django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE的解决办法(转)(代码片段