配置第三方包 的缓存功能 github地址:https://github.com/chibisov/drf-extensions
文档:http://chibisov.github.io/drf-extensions/docs/#cacheresponsemixin
安装
pip install drf-extensions
1.内存缓存
配置 非常简单
settings 可不用写 默认有
REST_FRAMEWORK_EXTENSIONS = {
'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',
}
然后 只需要 在你需要进行缓存的地方进行 配置
例子 CacheResponseMixin 配置上这个 就行了 注意一定要在最先配置这个 顺序很重要
from myapps.serializers import UserSerializer
from rest_framework_extensions.cache.mixins import CacheResponseMixin
class UserViewSet(CacheResponseMixin, viewsets.ModelViewSet):
serializer_class = UserSerializer
然后 就是配置过期时间 毕竟 数据也会有更新的 所以加上一个 过期时间
settings
REST_FRAMEWORK_EXTENSIONS = {
'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 * 15 #秒为单位 自己 随意更改
}
2.redis 缓存
这个可以更直观的看着 dir-extensions做了什么
django 连接redis 需要一些 第三方插件 github地址:https://github.com/niwinz/django-redis
安装
pip install django-redis
配置
settings
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
就这样 就可以了 至于 redis 的安装 我这里就不写了
需要启动了 redis 在启动项目 才能连接上
通过命令 keys * 可以查看 缓存 一些规则
网友评论