您现在的位置是:首页 > Javascript
当前栏目
如何让你的 Django API 快十倍
2023-02-19 12:24:17 时间
在 Django 里写 REST API 是简单的,如何让 API 的速度更快呢?本文分享一种方法:用 Redis 作为缓存,可以让你的 API 的速度提升 10 倍。
这里假定你已经安装了 Redis,并且自己可以按照官方文档写出一个 Django REST API,对 Django 有一定的基础。
首先,让我们安装一个插件:
然后在配置文件 settings.py 中添加一下内容:
然后在 views.py 中导入 redis 并创建一个 redis 实例:
通过在我们的 views.py 中创建一个列表函数来实现 Redis。此视图功能将检查数据是否在 Redis 中。如果在 Redis 服务器中找到数据,则从那里获取数据,如果没有,则从数据库中获取数据并将其存储在 Redis 中以备下次使用,这会导致速度增加,示例代码如下:
在这里 timeout 设置数据在 Redis 服务器中保留多长时间的超时,在这段代码中,它设置为 1 小时。1 小时后,它将自动从 Redis 中删除。
细心的你可能看到了装饰器 log_db_queries,它来测试 API 的访问速度,具体代码如下:
这为我们提供了获取数据所需时间的详细视图,以及数据是否来自数据库或 Redis。
来个使用缓存的前后对比:
使用前:1219.266 ms:
使用后:134.002 ms:
最后
缓存确实有助于提高 Django REST API 的速度,而 Redis 又是最佳的缓存工具,可以从这里获取Django-Redis[1] 的源代码。
相关文章
- 如何去阅读源码,我总结了18条心法
- 得物热点探测技术架构设计与实践
- 九个 Web 开发人员必备的手册
- 登高望远,一文解答 2023 年你最关心的前端热点问题
- SpriteJS:图形库造轮子的那些事儿
- 用Go重写Node.js服务:项目性能提升五倍,内存减少40%
- MVP 在软件开发中的重要性以及企业如何处理它
- CSS 如何让auto height完美支持过渡动画?
- Go1.20 那些事:PGO、编译速度、错误处理等新特性,你知道多少?
- 信仰崩了?Preact 开始采用 Vue3 的响应式设计
- TypeScript 5.0 beta 发布:新版 ES 装饰器、泛型参数的常量修饰、枚举增强等
- 面试必问:说一下 HTTPS 的执行流程?
- 前端开发中的各种居中问题,小小总结一下
- 订单流量录制与回放探索实践
- 为什么你应该自动化代码审查?
- 我们一起聊聊ECMAScript 提案最新的进展
- C++之父再“开枪”,美国安全局也要碰一碰
- 聊聊前端存储库Localforage和存储配额
- 站在开发者的角度理解框架的设计思想
- Kafka不常见但是很高级的功能: Kafka 拦截器