Django視圖中使用本地緩存

Django服務器視圖使用緩存能夠大大減少服務器的壓力,對數據實時性要求不高的場景使用緩存很是適合。django

使用Django本地緩存json

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配置的緩存時間。
相關文章
相關標籤/搜索