【发布时间】:2014-08-07 21:22:18
【问题描述】:
使用 Python 的 Django(带有 Rest 框架)创建类似于 Twitter 或 Instagram 的应用程序。
考虑到社交网络不断变化的性质,处理缓存内容(JSON 数据、图像等)的最佳方式是什么?如何在仍然缓存内容以提高性能的同时,仍然显示用户创建新帖子、对帖子点赞/cmets 或删除帖子的更新状态?
如果每次用户执行操作时都要刷新/重新创建缓存,那么就不值得拥有缓存,因为更新频率太快而无法使缓存发挥作用。有什么技巧可以解决这个问题。
请随时分享您在实施解决方案时所学到的方法和一些智慧。任何建议将不胜感激。 :)
【问题讨论】:
-
这是一个非常笼统的问题,这完全取决于您网站的流量和对象之间的关系,通常即使在高流量网站上,部分缓存也应该能够提高您的性能,您不会'不需要缓存所有内容,只需缓存昂贵的查询,有许多缓存选项,基于时间、部分、基于信号等......它们都取决于您项目的必要性。
-
@petkostas 感谢您的评论。当返回的数据由于用户交互而频繁更改时,如何有效地缓存昂贵的查询?您能为我的研究指明正确的方向吗?
-
不知道你的用户缓存多久变化一次,平均时间是多少?如果时间真的很短,那么像 varnish 这样的缓存会更有意义,同样,如果您需要处理许多请求,那么您需要考虑 DB 分片和 django 中的 DB 路由器。
标签: python django caching django-rest-framework