数据库方式
1,在settings.py里加数据库配置
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
'LOCATION': 'my_cache_table',
'TIMEOUT': '60',
'OPTIONS': {
'MAX_ENTRIES': '300',
},
'KEY_PREFIX': 'rock',
'VERSION': '1',
}
}
2,创建缓存表
python manage.py createcachetable
redis的方式
1,在settings.py里加reids配置
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
缓存的使用
1,页面级别的缓存,使用cache_page(60)装饰品,其中60表示缓存60秒数据
@cache_page(60)
def get_data(req):
#假装在拼命的查数据库
time.sleep(5)
return HttpResponse("睡醒了")
2,原生底层
from django.core.cache import cache
def get_players(req):
#在缓存尝试拿数据
data = cache.get("player")
if data:
#如果拿到缓存数据,直接返回
return HttpResponse(data)
else:
#没拿到
#假装拿很久
time.sleep(5)
#拿数据
players = Player.objects.all()
#设置缓存
cache.set("players",players,30)
return HttpResponse(players)