接口缓存--把接口放在redis数据库中,减少访问量
针对访问量大,且数据较固定的接口,建议建立接口缓存,建立了缓存之后,不会再直接去访问接口了。
比如下面的轮播图接口,每刷新一下首页都会访问一下轮播图接口,所以我们用接口缓存来处理,减少访问量。

视图模块:home/views.py
from rest_framework.generics import ListAPIView
from . import models, serializers
from settings.const import BANNER_COUNT
# 访问量大,且数据较固定的接口,建议建立接口缓存
from django.core.cache import cache
from rest_framework.response import Response
class BannerListAPIView(ListAPIView):
queryset = models.Banner.objects.filter(is_delete=False, is_show=True).order_by(‘-orders‘)[:BANNER_COUNT]
serializer_class = serializers.BannerModelSerializer
# 缓存有,走缓存,缓存没有走数据库
def list(self, request, *args, **kwargs): #群查
banner_data = cache.get(‘banner_list‘)
if not banner_data:
print(‘走数据库‘)
response = super().list(request, *args, **kwargs)
banner_data = response.data
# 建立缓存,不建议设置缓存过期时间,用celery等框架后台异步更新缓存即可
cache.set(‘banner_list‘, banner_data)
return Response(banner_data) 相关推荐
waiwaiLILI 2020-05-05
草原孤狼 2020-02-14
oZaoHua 2020-02-13
shiaisun 2015-07-02
afanti 2019-11-11
JingLisen 2019-09-21
努力练功不自宫 2019-09-20
MJlife 2011-05-18
bobkent 2019-09-07
j0lin 2014-11-10
Ctommy 2014-09-16
wwzaqw 2019-07-24
hehezhou 2014-09-02
yeyedeyatou 2011-05-14
fenpisong0 2011-04-18
happybird00 2011-04-18
zry 2011-04-05
bluetears 2019-07-01
龙印章 2016-06-13