配置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