python框架之Django(16)-接入Redis

准备

安装Redis

参考 Ubuntu 中 Redis 的安装与使用

在python中使用Redis

参考 python 中使用 Redis 。

安装依赖包

在 Django 中接入 Redis 需要安装如下依赖包:

pip install django-redis

使用

配置

在 settings.py 中加入配置:

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

获取Redis连接

在视图中就可以这样获取 Redis 连接:

from django.shortcuts import HttpResponse
from django_redis import get_redis_connection


def test(request):
    # 可通过参数选择连接 对应 settings.py 中 CACHES 节中的键名
    conn = get_redis_connection('default')
    # 之后就可以通过拿到的连接进行操作了
    return HttpResponse('')

配置全站缓存

使用中间件实现,会经过一系列的认证等操作,如果内容在缓存中存在,则使用 FetchFromCacheMiddleware 获取内容并返回给用户,当返回给用户之前,判断缓存中是否已经存在,如果不存在则 UpdateCacheMiddleware 会将内容保存至缓存,从而实现全站缓存。

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    'django.middleware.cache.FetchFromCacheMiddleware',
]

CACHE_MIDDLEWARE_ALIAS = ""
CACHE_MIDDLEWARE_SECONDS = ""  # 超时时间
CACHE_MIDDLEWARE_KEY_PREFIX = ""

单独视图缓存

  • 方式一:装饰器

    from django.views.decorators.cache import cache_page
    
    @cache_page(60 * 15)
    def my_view(request):
        pass
  • 方式二:路由中配置

    from django.views.decorators.cache import cache_page
    
    urlpatterns = [
        url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
    ]
  • 方式三:模板中使用

    {# a. 引入TemplateTag #}
    {% load cache %}
    
    {# b. 使用缓存 #}
    {% cache 5000 缓存key %}
        缓存内容
    {% endcache %}
posted @ 2018-12-21 10:53  zze  阅读(417)  评论(0编辑  收藏  举报