先介绍一下django文档的缓存有哪些;
- Memcached:高性能的分布式内存对象缓存系统,用于动态网站,以减轻数据库负载。使用Memcache需要安装系统服务器,适合超大型网站使用。
- 数据库缓存:缓存信息存储在网站数据库的缓存表中,缓存表可以在项目的配置文件中配置,适合大中型网站使用。
- 文件系统缓存:缓存信息以文本文件格式保存,适合中小型网站使用。
- 本地内存缓存:Django默认的缓存保存方式,只适用于项目开发测试。
- 虚拟缓存:Django内置的虚拟缓存,实际上只提供缓存接口,并不能储存缓存数据,只用于开发测试。
本文仅介绍数据库缓存这部分的使用,接口查询速度的优化,笔者觉得使用起来很方便简单,当然大家对其他方式感兴趣的可以研究研究 django中文文档缓存部分
配置文件
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'django_cache_table', # 缓存表名
'TIMEOUT': 60, # 默认情况下缓存键永不过时
'OPTIONS': {
'MAX_ENTRIES': 1000 # 删除旧值之前允许缓存的最大条目。默认是 300
}
},
}
执行命令生成缓存表
python manage.py createcachetable
使用例子
from django.core.cache import cache
from django.http import JsonResponse
def test(request):
cached_data = cache.get('test')
if cached:
return JsonResponse({'data': cached_data})
data = ......
cache.set('test', data)
return JsonResponse({'data': data})
查看数据库中缓存表
谢谢查看,多多交流!!!