python框架之Django(16)-接入Redis
准备
安装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 %}
Java博客目录 | Python博客目录 | C#博客目录