DRF 缓存解决方案 drf-extensions / redis

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 左右

DRF 缓存解决方案 drf-extensions / redis

有缓存的时候为 43ms, 超时5s后则变回1s, 5s内刷新都是40ms左右

DRF 缓存解决方案 drf-extensions / redis

搭载 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 方案即可.

上一篇:Handlebars模板库浅析


下一篇:利用TensorFlow实现多元逻辑回归