python-django-redis缓存

配置settings文件
写在DATABESES后面

CACHES = {
    'default': {
        # 用什么来做缓存
        'BACKEND': 'django_redis.cache.RedisCache',
        # 缓存地址
        'LOCATION': [
            'redis://47.98.37.165:6379/0',
        ],
        # 前缀
        'KEY_PREFIX': 'djang19062',
        'OPTIONS': {
            'CLIENT_CLASS': 'django_redis.client.DefaultClient',
            'CONNECTION_POOL_KWARGS': {
                # 最大连接数
                'max_connections': 512,
            },
            'PASSWORD': '85457018Rtj',
        },
    },
}

# 配置使用缓存来支持用户会话
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
# 会话数据放在那一组缓存中
SESSION_CACHE_ALIAS = 'default'
# 缓存时间为1天
SESSION_COOKIE_AGE = 86400

基于函数的缓存方法

在要缓存的FBV(基于函数的视图)上面加装饰器:

@cache_page(timeout=缓存时间(秒))
@cache_page(timeout=300)  # 缓存300秒
def get_cities(request, pid):
    pass

基于类的缓存方法

CBV(基于类的缓存)
在settings文件中加入配置

# 混入类的配置 - 缓存
REST_FRAMEWORK_EXTENSIONS = {
    'DEFAULT_CACHE_RESPONSE_TIMEOUT': 120,
    'DEFAULT_USE_CACHE': 'default',
    'DEFAULT_OBJECT_CACHE_KEY_FUNC': 'rest_framework_extensions.utils.default_object_cache_key_func',
    'DEFAULT_LIST_CACHE_KEY_FUNC': 'rest_framework_extensions.utils.default_list_cache_key_func',

要添加缓存的类视图继承rest_framework_extensions.cache.mixins里的CacheResponseMixin类

class HouseInfoViewSet(CacheResponseMixin, ModelViewSet):  # 继承CacheResponseMixin
    pass

你可能感兴趣的:(python-django-redis缓存)