环境:腾讯云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()