zoukankan      html  css  js  c++  java
  • 接口缓存--把接口放在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)
  • 相关阅读:
    算法训练——整数平均值
    算法训练——字符删除
    算法训练——最大的算式
    flask_sqlalchemy查询时将date类型修改为datetime类型
    mysql更改时区
    python 省略号 三个点...的含义
    ubuntu系统安装gedit
    python操作hdfs总结
    流式上传下载
    python将文件夹打包
  • 原文地址:https://www.cnblogs.com/wangcuican/p/11774470.html
Copyright © 2011-2022 走看看