将数据存储在django应用程序的内存中是一种很好的做法吗?

时间:2013-04-29 18:19:03

标签: python django

我正在编写一个可重用的django应用程序,用于返回jquery ui自动完成的json结果。

目前我正在存储类/函数,用于在每个类/函数中使用唯一键获取结果。

当请求到来时,我从dict中选择相应的类/函数并返回输出。

我的疑问是,执行上述操作是否是最佳做法,或者是否有其他技巧可以获得相同的结果。

示例GIST:https://gist.github.com/ajumell/5483685

3 个答案:

答案 0 :(得分:3)

你似乎在谈论一种记忆形式。

这是可以的,只要你不依赖该字典中的结果。这是因为内存对于每个进程都是本地的,并且您无法保证后续请求由同一进程处理。但是如果你有一个产生结果的后备,这是一个非常好的优化。

答案 1 :(得分:2)

这是一个非常普遍的问题。它主要取决于代码的基础结构。定义类和模型的方式以及应用程序的动态。

其次,考虑运行应用程序的服务器的资源非常重要。你有多少内存,以及多少磁盘空间,以便你可以考虑对应用程序更好的内容。

最后但同样重要的是,考虑将所有这些资源放入内存需要多少操作是很重要的。内存是易失性的,所以如果您的应用程序重新启动,您将不得不再次实例化所有类,这可能会有很多工作。

恢复,因为优化是保存在经常查询的内存对象(这就是缓存的全部内容)的非常好的选择,但你必须考虑到以前所有的东西。

答案 2 :(得分:1)

在字典中存储一系列函数并根据请求有条件地选择一个函数是一种完全可以接受的方法。

如果您想要更具体的答案,发布您的实际代码会非常有帮助。其次,这可能更适合codereview.stackexchange