9

我的 Django 应用程序对性能非常敏感,所有请求都需要访问相同的数据结构。如何以所有请求都可以访问的方式存储数据结构?

背景:

我目前正在使用缓存后端。这有点慢,因为 DS 很大,每次都必须检索和解开。

我知道 HTTP 交互应该是无状态的,并且有意打破这种约束。应该不会发生任何不好的事情,因为它是只读的,对吗?

4

3 回答 3

4

有几种方法可以处理这个问题:

  1. 将数据结构完全移出 Python(而不是每次都从存储介质中加载)。例如,如果您的结构有利于它,您可以将其存储在RedisMongoDBRiakNeo4j中。(作为奖励,如果您需要该功能,您可以获得查询数据的能力)。
  2. 将结构移动到单独的进程并使用管道或队列与其通信。
  3. 使用内存映射文件来共享数据。

HTTP 是无状态的,但这并不意味着您不能在请求之间保留状态。您只需要自己完成工作(在应用程序级别)。该协议不适合你。 理想情况下,您避免使用状态,因为它更容易水平扩展,但并非每个应用程序都易于扩展

于 2013-09-13T21:13:35.280 回答
3

Django,可能还有大多数 Web 应用程序,都使用缓存。当然,缓存的效果取决于您如何使用它,即通过存储最频繁检索的数据。

于 2013-09-13T21:12:38.763 回答
0

关于 Django 缓存的真正有用且内容丰富的文章。提供量化的速度改进。令人惊讶的是,您只需稍作调整即可获得多快。

于 2013-09-13T21:48:01.410 回答