1、缓存
缓存的定义
- 缓存是一类可以更快地读取数据的介质的统称,也指其它可以加快数据读取的存储方式。
- 一般用来存储临时数据,常用介质的是读取速度很快的内存
意义:
- 视图渲染有一定成本,数据库的频繁查询过高;
- 所以对于低频变动的页面可以考虑使用缓存技术,减少实际渲染次数;
- 用户拿到响应的时间成本会更低
- web服务性能调优
2、Django中设置缓存
2.1、缓存方式1 - 数据库缓存(了解)
将缓存的数据存储在您的数据库中
说明:
尽管存储介质没有更换,但是当把一次负责查询的结果直接存储到表里,比如多个条件的过滤查询结果,可避免重复进行复杂查询,提升效率;
Django中配置方法
# 设置数据库作为django的缓存设置
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
"OPTIONS": {
"MAX_ENTRIES":300, # 缓存最大数据条数
"CULL_FREQUENCY":2, # 缓存条数达到最大值时,删除 1/2 的缓存数据
},
},
}
2.2、缓存方式2 - 本地内存缓存
可以将缓存放到跑Django服务的主机内存里,主要用于测试(测试环境)使用~
理论上,正式上线(生产环境)通常是把缓存存到一个内存型数据库中(例如Redis)
2.2.1、Django-设置Redis缓存
# 设置redis作为django的缓存设置
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://Redis的ip、端口、分库',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "你的Redis数据库密码",
# "DECODE_RESPONSES": True, #decode_response=True 返回字符串类型,不加返回字节类型
},
},
# 可以写多设置
'user': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://Redis的ip、端口、分库',
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
"PASSWORD": "你的Redis数据库密码",
},
},
}
# 配置缓存 Redis 相关
REDIS_TIMEOUT = 7 * 24 * 60 * 60
CUBES_REDIS_TIMEOUT = 60 * 60
NEVER_REDIS_TIMEOUT = 365 * 24 * 60 * 60
CSDN:Django使用Redis进行缓存详细最全流程
https://blog.csdn.net/sinat_29699167/article/details/79699200
脚本之家:Django中redis的使用方法(包括安装、配置、启动)
https://www.jb51.net/article/135175.htm