• Django视图中使用本地缓存


    Django服务器视图使用缓存可以大大减小服务器的压力,对数据实时性要求不高的场景使用缓存非常适合。

    使用Django本地缓存

    1. 在settings.py配置CACHES 

    CACHES = {
        'default': {
            'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',  # 指定使用本地缓存
            'LOCATION': 'unique-data_center_LocMemCache',  
            'TIMEOUT': 300,  # 缓存超时时间(默认为300秒,None表示永不过期)
            'OPTIONS': {
                'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
                'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
            }
        }
    }

    2. 在视图中使用装饰器使用缓存

    @cache_page(15)
    def stock_detail(request, pk):
        tab_name = 'stock_' + pk
        stock_mod = new_stock(tab_name)
    
        # 查询
        if request.method == 'GET':
            limit = request.GET.get('limit')
            offset = request.GET.get('offset')
            total = stock_mod.objects.count()
    
            # 结果按日期降序排列
            datalist = stock_mod.objects.all().order_by('-trade_date')[int(offset): int(offset)+int(limit)]
            json_list = []
    
            import json
            # 返回json字符串
            for data in datalist:
                json_dict = model_to_dict(data)
                json_list.append(json_dict)
    
            result = dict()
            rows = list()
            result['total'] = total
            result['rows'] = json_list
    
            logger.info('获取股票列表')
            return JsonResponse(result, safe=False)
    @cache_page(15)指定缓存过期时间为15s,如果不指定,默认使用setting.py配置的缓存时间。
  • 相关阅读:
    POJ_2513Colored Sticks 字典树+
    hdu1098:Ignatius's puzzle
    hdu1010:Tempter of the Bone 搜索+剪枝
    轻院1875: 蛤玮的财宝
    POJ3069:Saruman's Army
    轻院1874: 蛤玮学计网
    Educational Codeforces Round 18 E. Colored Balls
    浏览器f12的方法下载资源
    把手机上的新浪微博客户端卸载了
    Xmind使用总结
  • 原文地址:https://www.cnblogs.com/bryant24/p/11445769.html
Copyright © 2020-2023  润新知