Django中操作redis
1.Django中操作redis
安装django-redis模块
|
1
|
pip3 install django-redis |
在setting配置:
|
1
2
3
4
5
6
7
8
9
10
11
12
|
# reids_configureCACHES = { "default":{ "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://182.254.210.59:6379", # 连接地址 "OPTIONS": { "CLIENT_CALSS": "django_redis.client.DefaultClient", "CONNECTION_POOL_KWARGS": {"max_connections": 1000}, "PASSWORD":"123123", # 连接密码 } }} |
在views中调用
|
1
2
3
4
5
6
7
8
9
10
11
|
def index(request): conn = get_redis_connection('default') conn.hset('dic','age',22) return HttpResponse('设置成功')def order(request): conn = get_redis_connection('default') val = conn.hget('dic','age') val = val.decode('utf-8') return HttpResponse('取值成功 '+val) |
2.全站缓存
全站缓存要用到中间件了,在settings中间件配置的 MIDDLEWARE 模块中,加两条配置
|
1
2
3
4
5
6
|
'django.middleware.cache.UpdateCacheMiddleware', # 加到中间件的最上面'django.middleware.cache.FetchFromCacheMiddleware', # 加到中间件的最下面附加:CACHE_MIDDLEWARE_ALIAS = "" # 设置缓存的别名CACHE_MIDDLEWARE_SECONDS = "" # 设置缓存的超时时间CACHE_MIDDLEWARE_KEY_PREFIX = "" |
全站缓存指的是每次在请求过来的时候先经过中间件,然后到缓存,如果缓存中没有的话去就去数据库中找,在返回数据的时候顺便放到缓存中一份
3.单个视图缓存
方式一: 给想要被缓存的单个视图加装饰器
|
1
2
3
4
5
|
from django.views.decorators.cache import cache_page # 在views中调用@cache_page(60 * 15)def index(request): ... |
方式二:在配置url的同时直接指定缓存
|
1
2
3
4
5
|
from django.views.decorators.cache import cache_pageurlpatterns = [ url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),] |
4.局部视图缓存
4.1 引入TemplateTag
|
1
|
{% load cache %} |
4.2 使用缓存
|
1
2
3
4
5
|
{% cache 5000 缓存key %} # 指5000秒 缓存key 指缓存存放的地方 <div></div> # 要被缓存的单独一块内容{% endcache %} |

浙公网安备 33010602011771号