1.Django中操作redis
  安装django-redis模块

1
pip3 install django-redis

  在setting配置:

1
2
3
4
5
6
7
8
9
10
11
12
# reids_configure
CACHES = {
    "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_page
 
urlpatterns = [
    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 %