环境:腾讯云Ubuntu 16.04
Django的Redis缓存可以分为view缓存、Template模板缓存、底层的缓存API
1.在settings中进行配置
CACHES={
"default": {
'BACKEND': 'redis_cache.cache.RedisCache', #缓存到redis中,默认存储在1数据库,也可缓存到redis_cache.cache.RedisCache本地内存中
'LOCATION': 'localhost:6379' #配置本地redis数据库
'TIMEOUT': 60, #缓存时间,单位为秒,如果设置为None,则永不过期
}
}
2.安装django-redis-cache
在安装django-redis-cache之前,系统必须先安装好redis
sudo apt-get install redis-server
3.查看redis是否启动
使用命令 ps -aux|grep redis
如果没有发现redis-server,则输入sudo redis-server启动redis
4.查看redis缓存情况
redis-cli #连接数据库
select 1 #切换到数据库1
keys * #查看1中的所有数据
此时看到的redis中是没有缓存任何数据的
5.通过装饰器对views进行缓存
from django.views.decoretors.cache import cache_page
@cache_page(60 * 10) #时间以60为基准,60*10就是10分钟
def cache(request):
return HttpResponse('hello')
地址就是自己在urls中配置好的
urlpatterns = [
url(r'^cache/$', views.cache),
]
6.测试缓存
调试django,输入python manage.py runserver 0.0.0.0:8008
访问刚刚的视图http://x.x.x.x:8008/cache就能看到返回的hello
查看redis的数据(还是按上面的命令进行查看)
这时候就能看到redis已经缓存了我们刚刚访问的页面的数据了
7.通过视图进行缓存
为了能看出效果,我们先将之前redis中的缓存先删除掉
可以登录redis中,选择1,使用del [key名] 对缓存进行删除
然后直接在任意的模板中进行缓存设置即可,格式如下:
#加载缓存
{% load cache %}
# 缓存模块,500为时间,单位秒,hello'为模块名
{% cache 500 hello %}
hell0 1
# 模块结束
{%endcache %}
8.底层的缓存API
from django.core.cache import cache
设置:cache.set(键,值,有效时间)
获取:cache.get(键)
删除:cache.delete(键)
清空:cache.clear()