Python中的持久化内存存储

3 投票
1 回答
1152 浏览
提问于 2025-04-16 22:56

我想为我的网页应用程序写一个自定义的数据模型,这个模型会在内存中以一组自定义的Python对象存在。网页应用可以对这些对象的数据进行操作,并在用户请求时运行它们的方法。而当请求处理完后,这些对象会继续保留在内存中。

这些模型对象会有一些方法,可以把自己写入硬盘(我还不太确定具体怎么做,但这不是我现在关注的重点),主要是为了备份。理想情况下,只要服务器在运行,这些对象就会一直保留在内存中。

如果有多个用户同时在操作这些对象的数据,就需要通过会话来管理对模型的访问,虽然这种情况相对比较少见。

我不能在网页应用启动时就初始化这些对象,因为即使网页应用重置,它们也必须继续存在。

有没有什么第三方组件可以让设置这种模型变得更简单?对于走这条路有什么建议吗?我会很感激任何帮助,因为我在编程独立进程进行通信方面经验不多。

我的服务器会使用Linux,我打算使用Pyramid作为网页应用的框架。

提前谢谢你们,
Will

1 个回答

2

我觉得这主要取决于你愿意花多少精力去打造自己的ORM(对象关系映射)。

如果你有信心去处理你的Python对象的序列化,并且根据你的模型复杂程度,你可以尝试一下Redis

Redis是一种非关系型数据库,基于键值对的模型。所有数据都存储在内存中,并且会定期(具体频率取决于写入次数,可以自定义)保存到磁盘上。使用起来也相对简单。

对于Python来说,有一个可以用来操作Redis的库,叫做redis_py

当然,Redis并不是唯一的选择,你也可以看看类似的替代品,比如Tokyo Tyrant。

撰写回答