我的Django restframework
项目中的查询速度很慢。
许多嵌套的序列化程序导致HTTP请求缓慢(2-5秒)
所以我想到了使用Django可以提供Memcache server
的缓存。
但我恐怕我不理解它的行为。如果客户端每1秒不间断地请求相同的查询,并且突然其中一个对象发生了变化,会发生什么?用户是否会获得缓存结果,或者Django会返回具有特定更改的缓存结果吗?
答案 0 :(得分:0)
Django不会自动管理缓存数据。你必须自己管理它。
您可以采用多种方法来管理基于整个应用程序逻辑的缓存数据。
https://docs.djangoproject.com/en/1.11/ref/signals/#module-django.db.models.signals
def save(self, *args, **kwargs):
super(MyModel, self).save(*args, **kwargs)
cache.set(str(self.pk), pickle.dumps(self))
perform_create,perform_update和perform_delete methods
def perform_update(self, serializer):
obj = serializer.save()
cache.set(str(obj.pk), pickle.dumps(obj))
http://www.django-rest-framework.org/api-guide/generic-views/#genericapiview
对于基于api的应用程序,我更喜欢使用通用视图钩子。