如何使用持久缓存缓存DJANGO REST框架(检索)
我有以下DJANGO REST视图:
class AnnotationViewSet(
mixins.CreateModelMixin,
mixins.ListModelMixin,
mixins.RetrieveModelMixin,
viewsets.GenericViewSet
):
queryset = Annotation.objects.all()
serializer_class = AnnotationSerializer
访问单个方法将通过 Mixins.RetRieveModelMixin
来调用检索
函数。我想加快函数,因为它需要多个查询,并且使用了很多CPU。
特别是:
- 我希望
- 根据检索到的记录重新启动应用程序后可以使用的持久缓存需要不同(例如=“ nofollow noreferrer”> http://127.0.0.0.1/annotations/1 VS 等)
到目前为止,我尝试覆盖视图检索
方法:
@method_decorator(cache_page(60 * 60 * 24 * 365))
def retrieve(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance)
return Response(serializer.data)
并将默认的缓存设置为磁盘:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION': '/home/django_cache',
}
}
我认为它不起作用,因为我需要缓存约200万个项目(我有大约200万记录):文件夹/home/django_cache
使用少于MB,并且每次调用API时的尺寸会更改。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论