这篇文章我们将学习如何在Django项目中配置Django REST Framework缓存。
安装配置
我们需要安装额外的插件 DRF-extensions: https://github.com/chibisov/drf-extensions
安装:
进入到项目的虚拟环境安装插件包
1 | pip install drf-extensions |
配置:
我们查看官方文档:https://chibisov.github.io/drf-extensions/docs/#cacheresponsemixin
我们看到官方文档描述为只有在使用retrieve
和list
的这两个查看方法的时候才能使用缓存。具体使用是在对应的类中引用CacheResponseMixin
。
1 | # 使用例子 |
配置过期时间
完成上述配置之后就能缓存成功,但是如果不设置缓存失效,会一直访问缓存数据,当有新数据加载到数据库的时候就会出现查找不到,这时我们需要设置缓存过期时间。
查看官方文档设置过期时间
在settings.py配置文件配置如下:
1 | REST_FRAMEWORK_EXTENSIONS = { |
完成之后我们就完成了所有的配置。
配置Redis缓存
有的同学就有疑问了,这个缓存是保存在哪的呢?
默认情况是保存在本机内存中(local memory),不过我们现在配置Redis,可以更直观查看数据在内存中的存储方式。
安装必要的库django-redis:https://github.com/niwinz/django-redis
查看中文文档进行安装配置:https://django-redis-chs.readthedocs.io/zh_CN/latest/
安装:
1 | pip install django-redis |
配置
在settings.py配置文件配置如下:
1 | CACHES = { |
这里的大致原理是对于不同的请求,会在redis中生成不同的主键进行保存。即不同的参数,不同的页面都有不同的key以确保数据的准确性。