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

準備

安裝Redis

參考 Ubuntu 中 Redis 的安裝與使用html

在python中使用Redis

參考 python 中使用 Redis 。python

安裝依賴包

在 Django 中接入 Redis 須要安裝以下依賴包:redis

pip install django-redis

使用

配置

在 settings.py 中加入配置:django

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 會將內容保存至緩存,從而實現全站緩存。url

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 %}
相關文章
相關標籤/搜索