drf-extensions
概述
drf-extensions组件内部提供了 DRF 的本地内存方式的缓存方式
本地内存方式缓存在项目重启后则会消失
官方点击 这里
安装
pip3 install drf-extensions or from github pip3 install https://github.com/chibisov/drf-extensions/archive/master.zip
导入
from rest_framework_extensions.cache.mixins import CacheResponseMixin
使用
在要被使用的 DRF 视图类中继承此类( 最好写在第一个 )
class GoodsListViewset(CacheResponseMixin, mixins.ListModelMixin.....):
pass
配置
此处配置为5s失效, 其他配合点击这里 查看
REST_FRAMEWORK_EXTENSIONS = {
'DEFAULT_CACHE_RESPONSE_TIMEOUT': 5
}
效果
在无缓存的时候请求是 1s 左右
有缓存的时候为 43ms, 超时5s后则变回1s, 5s内刷新都是40ms左右
搭载 Redis
安装
使用第三方组件 django-redis
pip install django-redis -i http://pypi.douban.com/simple --trusted-host pypi.douban.com
配置
配置相关的连接参数在 settings.py 中
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "yangtuo",
}
}
}
使用
基础的使用点击 这里
如果是搭配 drf-extensions 组件, 则和上面的方法是一样的
drf-extensions 的缓存方法是基于本地的, 如果在配置中配置了 基于 redis
则缓存方案自动切换为 redis 方案即可.