Python中持久的内存存储

时间:2011-08-05 00:06:28

标签: python design-patterns web-applications models

我希望为我的Web应用程序编写一个自定义数据模型,该模型在内存中存在作为自定义python对象的集合。 Web应用程序可以操作这些对象上的数据并在用户请求上运行它们的方法,并在请求线程死亡后,对象在内存中持久存在。

模型对象会有自己写入磁盘的方法(不知道我将如何做到这一点,但这不是我在这里感兴趣的),但仅用于备份目的。理想情况下,只要服务器运行,它们就会持久存储在内存中。

在多个用户同时操作对象数据的情况下,会话必须管理对模型的访问,尽管这种情况相对较少。

使用Web应用程序初始化对象不是一个选项,因为即使重置Web应用程序,它们也必须保持不变。

是否有任何类型的第三方组件可以让您更轻松地设置此类型号?沿着这条路走的任何建议?任何帮助都会受到赞赏,因为我没有太多编程独立进程的经验,无法用python或其他方式进行通信。

我的服务器将是Linux,我计划将Pyramid用作Web应用程序的框架。

提前致谢, 将

1 个答案:

答案 0 :(得分:2)

我认为这主要取决于你想要建立自己的ORM的工作量。

如果您正在完成序列化python对象的任务,并且根据模型的复杂程度,您可以在Redis处进行一次拍摄。

Redis是一个基于键值模型的非关系数据库。您的所有数据都存储在内存中,并定期(频率取决于写入次数并可自定义)转储到磁盘。它也很容易上手和使用。

有一个可用于python的redis包装:redis_py

当然,Redis不是唯一的类型,你也可以看看像东京暴君这样的替代品。