码迷,mamicode.com
首页 > 数据库 > 详细

接口缓存--把接口放在redis数据库中,减少访问量

时间:2019-10-31 23:54:02      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:更新   serial   cache   color   -o   处理   import   lis   framework   

针对访问量大,且数据较固定的接口,建议建立接口缓存,建立了缓存之后,不会再直接去访问接口了。

比如下面的轮播图接口,每刷新一下首页都会访问一下轮播图接口,所以我们用接口缓存来处理,减少访问量。

技术图片

 

 视图模块: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)

 

接口缓存--把接口放在redis数据库中,减少访问量

标签:更新   serial   cache   color   -o   处理   import   lis   framework   

原文地址:https://www.cnblogs.com/wangcuican/p/11774470.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!