当前位置:   article > 正文

Django数据库缓存_如何监控django缓存使用情况

如何监控django缓存使用情况

使用场景:经常做查询,对实时数据不作要求,数据量大等场景
内存缓存是缓存手段当中最快的,但是有内存溢出漏洞
文件缓存是缓存当中性价比最高,安全有漏洞
数据库缓存,再创建一个表存放经常查询的数据,设计难度比较高

  1. 在settings中配置
# 数据库缓存
CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',  # 缓存后台使用的引擎
        'LOCATION': 'my_cache',  # 数据库表
        'TIMEOUT': 300,  # 缓存超时时间(默认300秒,None表示永不过期,0表示立即过期)
        'OPTIONS': {
            'MAX_ENTRIES': 300,  # 最大缓存记录的数量(默认300)
            'CULL_FREQUENCY': 3,  # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3)
        },
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 执行命令行来生成配置中的数据库表
# 执行该命令后会发现数据库中多了一张my_cache表
python3 manage.py createcachetable
  • 1
  • 2
  1. 局部缓存使用
from django.core.cache import cache
from django.shortcuts import HttpResponse
import time

def use_caches(request):
	if cache.get("current_time"):
		current_time = cache.get("current_time")
	else:
		current_time = time.time()
		cache.set("current_time",current_time,10) # 数据库中设置key为current_time ,value 为 current_time ,过期时间为 10s
	return HttpResponse(current_time)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  1. 全局缓存使用
  • 视图中使用
from django.shortcuts import HttpResponse
from django.views.decorators.cahe import cache_page
import time

@cache_page(10)
def use_caches(request):
	current_time = time.time()
	return HttpResponse(current_time)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 路由中使用
from django.urls import path
from . import views
from djamgo.viwes.decorators.cache improt cache_page

urlpatterns =[
   path('use_caches/',cache_page(10)(use_caches)),   # 只对当前路由进行缓存
]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/259081
推荐阅读
相关标签
  

闽ICP备14008679号