DRF 配置 Redis 缓存

安装 Redis

在配置缓存前要先安装好 Redis ,Windows 版本下载地址: https://github.com/MicrosoftArchive/redis/releases ( 官方没有对应的 Windows 版本,如果是在Linux环境,去官网下载即可),在这里我选择的是.msi,这个可以通过界面安装,只要点几下就可以安装完成,就不放安装过程图了。

安装成功后,确定启动了 Redis 服务,在 cmd 命令行中输入redis-cli就能进入到 Redis 命令行。(前提要把 Redis 的安装目录配置到环境变量,在安装过程有添加环境变量的选项,勾上即可)

安装 drf-extensions

可以在 Github 中搜索到,地址:https://github.com/chibisov/drf-extensions,drf-extensions是 DRF 框架的自定义扩展的集合,其中就包含有缓存的扩展。

通过 pip 安装后,像下面的代码一样把CacheResponseMixin添加到 ViewSet 即可, 注意是添加到第一位(如果使用的不是 ViewSet ,可以到文档中看看具体配置):

这时可以启动 Django 项目测试看看,在访问数据前,F12 打开开发者中心,然后看看响应用了多少时间。

首次访问

第二次访问

二次的响应时间相差了一倍,可见缓存起了效果了。

另外可以通过在settings.py文件中配置缓存过期时间,我这里设置了10s:

基于上面的两次访问,10s后再来访问一次看看

第三次访问

响应时间就变慢了,自己可以多测试几次看看结果。

但是!这里的缓存是存放在 Django 的服务器上,如果重启了服务器那么所有缓存就消失了,这可不行阿,所以要把缓存存放在别的地方,就是 Redis 上。

安装 django-redis

地址:https://github.com/niwinz/django-redis,这个库可以把缓存存放到 Redis 中,详细说明可以看文档,有中文文档。

安装好后只要一步就能配置成功,非常方便快捷,在settings.py中添加如下:

我这里 Redis 是没有设置密码的,如果设置了把LOCATION改为 或者在OPTIONS中添加

注意,要确定 Redis 的服务已经启动,然后再次运行 Django 项目,打开 cmd 命令行,进入到 redis 命令行,输入 ,如果,现在是空的。

image.png

访问一下数据再来看看,有一条数据了,说明确实缓存下来了。

image.png

跟着,我们等个 10s ,等缓存过期后再看看会怎样···· 它又空了!缓存过期了 Redis 也会把数据给删掉。

image.png

缓存到此就配置好了,更高级的用法可以到文档中了解。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180303G0GQ3Z00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券