接口緩存


接口緩存

視圖模塊: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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM