django-redis

 

redis配置:settings.py

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

 

views.py

import time
from django.shortcuts import render,HttpResponse
def index(request):

return HttpResponse('设置成功') def order(request): return HttpResponse('获取成功')

全站缓存:

MIDDLEWARE = [
    'django.middleware.cache.UpdateCacheMiddleware',
    
    # ...
    
    'django.middleware.cache.FetchFromCacheMiddleware',
]
    CACHE_MIDDLEWARE_ALIAS = ""
    CACHE_MIDDLEWARE_SECONDS = ""
    CACHE_MIDDLEWARE_KEY_PREFIX = ""
 

单视图设置缓存:

  方式一:

from django.shortcuts import render,HttpResponse
import time
from django.views.decorators.cache import cache_page


@cache_page(60 * 15)  # 缓存时间  秒
def index(request):
    ctime = str(time.time())
    return HttpResponse(ctime)

  方式二:

from django.views.decorators.cache import cache_page

urlpatterns = [
    url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
]

 

局部缓存:

{% load cache %}


<html>

    <body>
         {% cache 10 sdfsdfsd32fd %}
            <div>asdfasdf</div>
         { % endcache %}   

    <body>
    
</html>

 

 CBV模式下做缓存:如果要给多个请求设置缓存,添加多个装饰器

from django.utils.decorators import method_decorator

@method_decorator(cache_page(10), 'get')
class LoginView(View):
    def get(self, request):
        pass

    def post(self, request):
        pass

 

 

1-配置文件
    a-创建缓存文件cache
    b-settings配置
        CACHES = {
            'default': {
                'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
                'LOCATION': os.path.join(BASE_DIR,'cache')
            }
        }
2-整个页面设置缓存
    from django.views.decorators.cache import cache_page
    @cache_page(10)  #整个页面缓存
    def cache(request):
        import time
        ctime = time.time()
        return render(request, 'cache.html', {'ctime': ctime})
3-页面内局部设置缓存
    {% load cache %} {#局部缓存#}

    <body>
        <h1>{{ ctime }}</h1>
        <h1>{{ ctime }}</h1>

        {#局部缓存#}
        {% cache 10 c1 %}
            <h1>{{ ctime }}</h1>
        {% endcache %}
    </body>

4-全网站设置缓存-->中间件
    MIDDLEWARE = [
        # 'django.middleware.security.SecurityMiddleware',
        # 'django.contrib.sessions.middleware.SessionMiddleware',
        # 'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',
        # 'django.contrib.auth.middleware.AuthenticationMiddleware',
        # 'django.contrib.messages.middleware.MessageMiddleware',
        # 'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.cache.FetchFromCacheMiddleware',
    ]
文件缓存

 

 

memcache:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake',
    }
}
本机内存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': [
            '172.19.26.240:11211',
            '172.19.26.242:11212',
            '172.19.26.244:11213',
        ]
    }
}
多个服务器共享缓存

 

posted @ 2018-08-07 01:27  web123  阅读(120)  评论(0编辑  收藏  举报