使用redis建立緩存數據庫存儲數據


接口緩存----把數據放在redis數據庫中,減少訪問量

針對訪問量大,且數據較固定的接口,建議建立接口緩存,建立了緩存之后,提取數據就不再走數據庫,直接從緩存中提取。同時也減少了數據庫壓力

比如輪播圖接口,每刷新一下首頁就會訪問一下輪播圖接口拿去數據,這時建立接口緩存來處理就可以減輕數據庫壓力

視圖模塊:home/views.py

from rest_framework.generics import ListAPIView
from . import models
from . import serializers
from django.conf import settings
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('-order')[:settings.BANNER_COUNT]
    serializer_class = serializers.BannerModelSerializer
    #訪問量大且數據一段時間內較為固定的接口,可以建立接口緩存
    #1、數據從緩存中拿,有直接返回,沒有就查詢數據庫
    #2、查詢數據庫的數據返回給前台,同時將數據建立緩存
    def get(self, request, *args, **kwargs):  # 群查
        banner_list = cache.get('banner_list') #緩存有,走緩存,沒有就走數據庫
        if not banner_list:
            # 走數據庫拿數據
            response = self.list(request, *args, *kwargs)
            # 保存數據到緩存
            # response.data不是json數據,是drf中自定義的ReturnList類
            cache.set('banner_list', response.data)  # 緩存不設置過期時間,更新任務交給celery異步任務框架
            return response
        return Response(banner_list)


免責聲明!

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



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